Archive for the 'NSSharingService' Category

2017/02/23 NSSharingService経由でメールを新規作成(作成するだけ、送信しない)

NSSharingServiceを用いて新規メール作成を行うAppleScriptです。

単に指定のSubject、本文、送信先アドレスのメールを、OS標準のメーラー(default mailer)で新規作成するだけです。送信しません(AppleScript使いに見せると激怒されるレベル)。単なるCocoaの機能テストなので全力で見逃してください。

AppleScript名:NSSharingService経由でメールを新規作成(作成するだけ、送信しない)
– Created 2017-02-23 by Takaaki Naganoya
– 2017 Piyomaru Software
use AppleScript version “2.4″
use scripting additions
use framework “Foundation”
use framework “AppKit”
–http://piyocast.com/as/archives/4478

set shareItems to {“てすとだよおおおん”}
set aService to current application’s NSSharingService’s sharingServiceNamed:(current application’s NSSharingServiceNameComposeEmail)
aService’s setDelegate:me
aService’s setRecipients:{“maro@piyocast.com”}
aService’s setSubject:“試験送信”
aService’s performWithItems:shareItems

★Click Here to Open This Script 

2015/01/24 ASOCでTwitter投稿

ASOCでTwitterへの投稿を行うAppleScriptです。

以前にXcode上のASOC用に作っておいたものを、若干書き換えてScript Editor上から直接実行できるようにしてみたものです。

tw1.png

tw2.png

本当は画面上にいちいち投稿ビューが表示されないものを追いかけていたのですが、Blocksの記述が必要でAppleScriptObjCの仕様上、呼び出せないものだったのでとりあえずこのぐらいで。

正直、この程度の処理にあまり苦労したくないので、最終的にはcommand lineから呼び出すtwitterクライアント「tw」を使ったほうが現実的かも、、、

AppleScript名:ASOCでTwitter投稿
– Created 2015-01-24 by Takaaki Naganoya
– 2015 Piyomaru Software
use AppleScript version “2.4″
use scripting additions
use framework “Foundation”
use framework “AppKit”

set aString to “ぴよ〜”

set twService to current application’s NSSharingService’s sharingServiceNamed:(current application’s NSSharingServiceNamePostOnTwitter)
set twService’s delegate to me

set shareItems to current application’s NSMutableArray’s alloc()’s initWithObjects:aString
tell twService to performWithItems:shareItems

★Click Here to Open This Script 

2012/11/17 AppleScriptObjCで、NSSharingService経由のTwitter投稿

AppleScriptObjCで、Twitterに投稿する最低限のシンプルなサンプルです。

本来は、「システム環境設定」の「メール/連絡先/カレンダー」にTwitterアカウントを設定しておく必要があります。

AppleのObjective-Cのサンプルコード「SharingServices」や、Xcodeから検索できるAPIリファレンスの内容を見て調べました。

Xcode上でビルドして実行すると、

tw1.png

ウィンドウを表示するので、テキストフィールドにてきとーな文字を入れて「Tweet」ボタンをクリックすると……

tw2.png

Twitter投稿用ダイアログに指定した文字列が入ります。ここで、「送信」ボタンをクリックするとTwitterに送信されます。

Twitterに投稿する「手口」としては、本サンプルのようにNSSharingServiceによるものと、OS X 10.8から搭載されたSocial Frameworkを利用するものがあり、後者を用いると途中のダイアログ表示をスキップしたりできるようですが……Mac AppStoreの開発者IDなどが必要になるようです。

単にTwitterにAppleScriptのプログラムから投稿を行いたいだけであれば、TwitterアプリケーションをGUI Scripting経由でコントロールするほうが手軽だと思います。

AppleScriptObjCファイル名:AppDelegate.applescript

– AppDelegate.applescript
– twitterTest

– Created by Takaaki Naganoya on 2012/11/17.
– Copyright (c) 2012年 Takaaki Naganoya. All rights reserved.


script AppDelegate
  property parent : class “NSObject”
  
  property aTextField : missing value
  
  
  
  on applicationWillFinishLaunching_(aNotification)
    
  end applicationWillFinishLaunching_
  
  
  on applicationShouldTerminate_(sender)
    return current application’s NSTerminateNow
  end applicationShouldTerminate_
  
  
  on clicked_(sender)
    
    –画面上のテキストフィールドから文字を取得
    
set aString to aTextField’s stringValue()
    
    set twService to current application’s NSSharingService’s sharingServiceNamed_(current application’s NSSharingServiceNamePostOnTwitter)
    
set twService’s delegate to me
    
    set shareItems to current application’s NSMutableArray’s alloc’s initWithObjects_(aString)
    
tell twService to performWithItems_(shareItems)
    
  end clicked_
  
  
end script

▼新規書類に ▼カーソル位置に ▼ドキュメント末尾に