題:
通知中心/ twitter中存在哪些掛鉤,以便我可以通過編程方式進行鳴叫?
bmike
2012-07-26 21:55:41 UTC
view on stackexchange narkive permalink

我正在專門為 LaunchBar設計一個自定義操作,以便可以從該實用程序啟動推文。由於Notification Center具有“單擊鳴叫”按鈕,因此我想知道Notification Center是否具有任何鉤子,這些鉤子可讓我編寫腳本而不用等待程序開發人員添加執行該操作的功能。

Notification Center沒有AppleScript字典,沒有Automator動作,而且在戳可執行文件包時,沒有明顯的鉤子。
字符串的轉儲建議有一個叫做“ ShareKit”的東西,各種shareingService函數,還有一個叫做“ Share Widget”的東西-也許其中的一些子集可能會有所幫助。
明天我將有時間深入探討最佳答案,但我想為此懸賞,以獲取更多可能獲得的機會。
六 答案:
jtbandes
2012-07-27 10:07:00 UTC
view on stackexchange narkive permalink

應用程序可以使用新的 NSSharingService API進入共享選項。可以使用任何UNIX可執行文件進行聽起來像的自定義LaunchBar操作,因此您可能會編寫一個小的命令行工具(或者您可能需要構建一個實際的應用程序-您必須對其進行測試out),將激活此API(使用 NSSharingServiceNamePostOnTwitter ),並應顯示tweet對話框。

更新:從AppleScript啟動tweet,您可以執行以下操作:

 告訴應用程序“系統事件”告訴進程“通知中心”-如果(UI元素數)為1,則激活通知中心,然後單擊第一個菜單欄的第一個菜單欄項-單擊“ tweet”按鈕,然後單擊“ Window”末端告訴窗口的滾動區域1的表1的第2行的UI元素1的按鈕1。此外,您還可以切換“顯示”警報和橫幅” /請勿打擾模式: 
 告訴應用程序“系統事件”告訴進程“通知中心”按下選項單擊第一個菜單欄的第一個菜單欄項,然後按向上鍵end tellend tell  

(這都是非常特定於Notification Center的當前窗口佈局的,很可能會隨著將來的OS X更新而中斷-但可能會有簡單的修復方法。)

並且一個“擊鍵”命令可以以文本開始Tweet。現在以編程方式完成Tweet…
我一直在嘗試將其更新為與優勝美地一起使用而未成功。有什麼建議麼?
@wst嗯,看起來很棘手。似乎單擊暴露的菜單欄項目不再起作用-可能會產生良好的[錯誤報告](http://bugreport.apple.com/)。
stuffe
2012-07-26 22:24:14 UTC
view on stackexchange narkive permalink

我所不知道的(事實上,我認為在 notifications 區域內有一個Twitter / Facebook quick post 區域實際上是愚蠢的(實際上應該是一個小部件) ),並且我已將其關閉),但是您可以使用命令行發送已發送的推文,如 this網頁中所述,摘錄如下:


To顯示推文列表(用您選擇的Twitter用戶名替換osxdaily):

  curl -s http://twitter.com/osxdaily | grep''|切-d“ >” -f2 |剪切-d“ <” -f1  

要更新您的Twitter狀態:

  curl -u your_user:您的密碼-d status ='這是我的更新'https://twitter.com/statuses/update.xml  
文本輸入區是我希望使用的位。我必須深入研究啟動欄文檔,看看curl想法是否有任何作用……。我以為他們禁止了明文發送密碼的工作,所以謝謝!
我認為他們禁止使用API​​的客戶端使用密碼發送(用密鑰身份驗證方法代替),但這實際上是使用網站而不是客戶端,因此使用用戶名/密碼可能很好。實際上,如果您已經使用活動會話和cookie等登錄,那麼即使沒有它們,它也可以正常工作...(guesswork)
我不認為Safari和`curl`之間共享cookie。無論如何,它們不應該如此。
Twitter於2010年6月30日完全切換為基於OAuth的登錄,並禁用了基本身份驗證。此後,您的答案中的第二條命令一直無效。
Daniel
2012-07-28 08:48:26 UTC
view on stackexchange narkive permalink

更進一步,將我們到目前為止所學的內容匯總在一起,這是一條完全編程的推文:

  tell應用程序“ System Events”告訴流程“ Notification Center”,單擊菜單菜單欄1的菜單項1單擊窗口“窗口”滾動區域1的表1表2行的UI元素1的按鈕1“推文的內容”擊鍵“ D”,使用{command down,shift down} end Tellend告訴 

這當然很脆弱,但是現在可以了。我很想找到一個 real 鉤子,但是UI腳本是一種解決方法。

哦,整潔。 ⇧⌘D將發送推文(這是“郵件發送”的快捷方式),這是合乎邏輯的。
發現它是錯誤的。肌肉記憶力很強。
Ewwis
2012-08-08 21:03:16 UTC
view on stackexchange narkive permalink

出色的命令切換D。

添加:

 顯示對話框“ Tweet?”默認答案“”按鈕{“ OK”}默認按鈕1將mytweet設置為結果應用程序“ System Events”返回的文本,通知進程“ Notification Center”單擊菜單欄1的菜單欄項目1單擊第2行的UI元素1的按鈕1窗口“窗口”滾動區域1的表1擊鍵mytweet擊鍵“ D”,使用{command down,shift down}擊鍵空間結束
Lri
2012-08-22 00:12:40 UTC
view on stackexchange narkive permalink

我寫了另一個腳本,解決了Ewwis發布的腳本中的某些問題:

  • 無法從一開始就關閉對話框。
  • 第二次單擊如果在上次登錄後未顯示Notification Center,則該操作將不起作用。
  • 如果在顯示用於撰寫推文的視圖之前存在延遲,則該腳本將不起作用。如果已經包含一些文本,則不會清除該文本。
  • 擊鍵命令僅適用於插入可以使用當前輸入法輸入的字符。
  • 通知中心側欄為結束時沒有關閉。

儘管打開了通知中心側邊欄,但它不起作用。

 設置對(顯示內容)返回的文本的答案對話框““默認答案”“)嘗試將剪貼板設置為舊,作為記錄結尾trytry,將文本項定界符設置為換行符,將剪貼板設置為答案的段落,作為文本告訴應用程序“系統事件”,告訴進程“通知中心”,單擊菜單欄項1菜單欄1嘗試在錯誤的窗口上單擊菜單欄1的菜單欄項目1單擊菜單欄1的菜單欄項目1結束嘗試單擊窗口1滾動區域1的表1的第2行的UI元素1的按鈕1使用命令“ av”使用{shift down,command down}向下擊鍵“ d”重複100次嘗試延遲0.1單擊菜單欄1的菜單欄項1退出重複結束結束嘗試結束重複告訴結束告訴結束嘗試將剪貼板設置為舊嘗試 

使用API​​會更容易。

嗯-我必須研究一下API。加上我的啟動器,Launchbar會比UI腳本好得多。 +1可能是一個新的最佳答案。
Ewwis
2012-08-22 19:02:19 UTC
view on stackexchange narkive permalink

太棒了!感謝您以另一種方式向世界展示。

我的解決方案適用於我,但您的解決方案也適用。

我不是FAR的Applescript專家,但我喜歡擺弄它。

謝謝!

使用我從您那裡學到的知識,這是另一種對我有用的方法。這不能解決您對備用鍵盤或錯誤的某些擔憂,但是也許可以為涉足AS的人提供幫助。

 顯示對話框“ Tweet?”默認答案“”按鈕{“ OK”}默認按鈕1和圖標2將mytweet設置為結果報告應用程序“ System Events”返回的文本,告訴進程“ Notification Center”單擊菜單欄1的菜單欄項目1單擊UI元素1的按鈕1窗口“窗口”滾動區域1的滾動表1的表1的第2行使用{command down,shift down}重複100次嘗試延遲0.1單擊菜單欄1的菜單欄項1退出重複結束嘗試結束重複結束Tellend告訴 


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...