বিজ্ঞপ্তি কেন্দ্র / টুইটারে কী কী হুক বিদ্যমান রয়েছে যাতে আমি প্রোগ্রামগতভাবে টুইট করতে পারি?


12

আমি বিশেষত লঞ্চবারের জন্য একটি কাস্টম অ্যাকশন ডিজাইন করতে চাইছি যাতে আমি সেই ইউটিলিটি থেকে একটি টুইট শুরু করতে পারি। যেহেতু নোটিফিকেশন সেন্টারের একটি "টুইট করতে ক্লিক করুন" বোতাম রয়েছে, তাই আমি ভাবছিলাম যে বিজ্ঞপ্তি কেন্দ্রের কোনও হুক রয়েছে যা প্রোগ্রামটির বিকাশকারীকে এই ক্রিয়াটি সম্পাদন করার জন্য কোনও ফাংশন যুক্ত না করে আমাকে স্ক্রিপ্ট করার অনুমতি দেয়।


2
বিজ্ঞপ্তি কেন্দ্রে কোনও অ্যাপলস্ক্রিপ্ট ডিকশনারি নেই, অটোম্যাটর ক্রিয়া নেই এবং দু: খজনকভাবে এক্সিকিউটেবল বান্ডেলের আশপাশে পোকার সময় প্রদর্শিত সুস্পষ্ট হুকের পথে খুব সামান্য।
ড্যানিয়েল

1
একটি স্ট্রিং ডাম্প "শেয়ারকিট" নামে পরিচিত কিছু, বিভিন্ন শেয়ারিং সার্ভিস ফাংশন এবং "শেয়ার উইজেট" নামে পরিচিত এমন কিছু প্রস্তাব দেয় - সম্ভবত এটির কিছু উপসেট কোনওরকম সহায়ক হতে পারে।
ড্যানিয়েল

আগামীকাল দুর্দান্ত উত্তরগুলি খননের জন্য আমার কাছে সময় হবে তবে এটি যে কোনও অতিরিক্ত এক্সপোজার পেতে পারে তার জন্য আমি এটি অনুদান করতে চাই।
বিমিক

উত্তর:


9

অ্যাপ্লিকেশনগুলি নতুন এনএসএসারিংসওয়ার্স এপিআইয়ের সাথে ভাগ করে নেওয়ার বিকল্পগুলিতে প্রবেশ করতে পারে । দেখে মনে হচ্ছে কাস্টম লঞ্চবার ক্রিয়াগুলি যে কোনও ইউএনআইএক্স এক্সিকিউটেবল ফাইলের সাথে তৈরি করা যেতে পারে, সুতরাং আপনি সম্ভবত একটি ছোট কমান্ড লাইন সরঞ্জাম লিখতে পারেন (বা আপনাকে একটি সত্যিকারের অ্যাপ্লিকেশন তৈরি করতে হবে - আপনাকে এটি পরীক্ষা করতে হবে) যা এই এপিআই সক্রিয় করে ( ব্যবহার করে NSSharingServiceNamePostOnTwitter), এবং এটি টুইট সংলাপ প্রদর্শন করা উচিত।

আপডেট: অ্যাপলস্ক্রিপ্ট থেকে একটি টুইট শুরু করতে, আপনি নিম্নলিখিতটি করতে পারেন:

tell application "System Events"
    tell process "Notification Center"
        -- activate notification center
        if (count of UI elements) is 1 then click first menu bar's first menu bar item
        -- click the tweet button
        click button 1 of UI element 1 of row 2 of table 1 of scroll area 1 of window "Window"
    end tell
end tell

তদতিরিক্ত, আপনি "সতর্কতা এবং ব্যানার দেখান" টগল করতে পারেন / মোড বিঘ্নিত করবেন না:

tell application "System Events"
    tell process "Notification Center"
        key down option
        click first menu bar's first menu bar item
        key up option
    end tell
end tell

(এটি বিজ্ঞপ্তি কেন্দ্রের বর্তমান উইন্ডো বিন্যাসের সাথে অত্যন্ত সুনির্দিষ্ট এবং ভবিষ্যতের ওএস এক্স আপডেটগুলি ভেঙে যাওয়ার সম্ভাবনা রয়েছে - তবে সম্ভবত সহজ সমাধানগুলি হবে))


2
এবং একটি keystrokeকমান্ড পাঠ্য দিয়ে টুইটটি শুরু করতে পারে। এখন প্রোগ্রামিয়ালি
ড্যানিয়েল

আমি ইয়োসেমাইটের সাথে কাজ করার জন্য এটি আপডেট করার জন্য ব্যর্থ চেষ্টা করছি। কোনও পরামর্শ?
wst

1
@wst এইচএম, কৃপণ দেখায় মনে হচ্ছে এক্সপোজড মেনু বার আইটেমটি ক্লিক করা আর কিছুই করে না - সম্ভবত কোনও ভাল বাগ রিপোর্ট তৈরি করতে পারে ।
jtbandes

3

আমি জানি না এমন কিছুই নয় (এবং বাস্তবে আমি মনে করি যে বিজ্ঞপ্তিগুলির মধ্যে একটি টুইটার / ফেসবুকের দ্রুত পোস্টের অঞ্চলটি আসলে বোবা (সত্যই একটি উইজেট হওয়া উচিত), এবং আমি এটি বন্ধ করে দিয়েছি) তবে আপনি কমান্ড লাইনটি ব্যবহার করতে পারেন এই ওয়েবপৃষ্ঠায় উল্লিখিত হিসাবে দু'জনেই একটি পঠিত টুইটগুলি প্রেরণ করুন :


টুইটগুলির তালিকা প্রদর্শন করতে (আপনার পছন্দসই টুইটারের ব্যবহারকারীর নাম দিয়ে দারুণভাবে প্রতিস্থাপন করুন):

curl -s http://twitter.com/osxdaily | grep '' | cut -d">" -f2 | cut -d"<" -f1

আপনার টুইটারের স্থিতি আপডেট করতে:

curl -u your_user:your_password -d status='This is My update' https://twitter.com/statuses/update.xml

পাঠ্য প্রবেশের অঞ্চলটি আমি ব্যবহার করার আশা করছিলাম। আমাকে লঞ্চবার ডক্সগুলি খনন করতে হবে এবং কার্ল ধারণার কোনও পা আছে কিনা তা আমি দেখতে পেয়েছি .... আমি ভেবেছিলাম তারা পরিষ্কার করে কোনও পাসওয়ার্ড প্রেরণ করে অক্ষম করেছে - এর জন্য ধন্যবাদ!
বিমিক

আমি মনে করি যে তারা ক্লায়েন্টদের জন্য পাসওয়ার্ড প্রেরণের ব্যবহারকে অক্ষম করেছে যা এপিআই ব্যবহার করে (কী প্রমাণীকরণের পদ্ধতিটি এটি প্রতিস্থাপন করে) তবে এটি কার্যকরভাবে ওয়েবসাইটটি ক্লায়েন্ট নয়, তাই ব্যবহারকারীর নাম / পাসওয়ার্ড ব্যবহার করা ভাল। প্রকৃতপক্ষে, আপনি যদি ইতিমধ্যে কোনও সক্রিয় অধিবেশন এবং কুকি ইত্যাদির সাহায্যে লগ ইন হয়ে থাকেন তবে এটি তাদের ছাড়াই চলতে পারে ... (অনুমান)
স্টাফ

আমি মনে করি না যে কুকিজ সাফারি এবং এর মধ্যে ভাগ করা আছে curl। এবং তাদের যাইহোক, হওয়া উচিত নয়।
অলিভিয়ের

2
টুইটার 30 ই জুন, 2010 এ ওআউথ-ভিত্তিক লগইনগুলিকে পুরোপুরি স্যুইচ করেছে এবং বেসিক প্রমাণীকরণ অক্ষম করেছে your আপনার উত্তরের দ্বিতীয় কমান্ড তখন থেকে কার্যকর হয়নি।
ম্যাথিয়াস বাইনেন্স

3

এটিকে আরও একধাপ এগিয়ে নিয়ে যাওয়া এবং এখন পর্যন্ত আমরা যা শিখেছি তা একত্রে রেখে, এখানে একটি সম্পূর্ণ অগ্রগতিমূলক টুইট রয়েছে:

tell application "System Events"
    tell process "Notification Center"
        click menu bar item 1 of menu bar 1
        click button 1 of UI element 1 of row 2 of table 1 of scroll area 1 of window "window"
        keystroke "Content of the tweet"
        keystroke "D" using {command down, shift down}
    end tell
end tell

অবশ্যই এটি ভঙ্গুর, তবে আপাতত, এটি কাজ করে। আমি একটি বাস্তব হুক সন্ধান করতে চাই , কিন্তু ইউআই স্ক্রিপ্টিং একটি কাজ।


ওহ, ঝরঝরে। এটি যৌক্তিক যে ⇧⌘ ডি টুইটটি প্রেরণ করবে (এটি মেইল ​​প্রেরণের শর্টকাট)।
jtbandes

1
ভুল করে খুঁজে পেয়েছি। পেশীর স্মৃতিশক্তি শক্তিশালী।
ড্যানিয়েল

3

ব্রিলিয়ান্ট কমান্ড শিফট ডি।

যোগ করার পদ্ধতি:

display dialog "Tweet?" default answer "" buttons {"OK"} default button 1
set mytweet to text returned of result

tell application "System Events"
    tell process "Notification Center"
        click menu bar item 1 of menu bar 1
        click button 1 of UI element 1 of row 2 of table 1 of scroll area 1 of window "window"
        keystroke mytweet
        keystroke "D" using {command down, shift down}
        keystroke space
    end tell
end tell

1

আমি আরেকটি স্ক্রিপ্ট লিখেছিলাম যা ইভিস পোস্ট করা স্ক্রিপ্টের কিছু সমস্যা সমাধান করে:

  • শুরুতে ডায়লগটি বন্ধ করার কোনও উপায় ছিল না।
  • শেষ ক্লিকের পরে বিজ্ঞপ্তি কেন্দ্রটি না দেখানো হলে দ্বিতীয় ক্লিকের ক্রিয়া কাজ করে না।
  • কোনও টুইট রচনার জন্য দর্শন দেখানোর আগে দেরি হওয়ার আগে স্ক্রিপ্টটি কাজ করে না। যদি এর মধ্যে ইতিমধ্যে কিছু পাঠ্য থাকে তবে তা সাফ করা হয়নি।
  • কীস্ট্রোক কমান্ড কেবলমাত্র অক্ষরগুলি সন্নিবেশ করানোর জন্য কাজ করে যা বর্তমান ইনপুট পদ্ধতিতে প্রবেশ করতে পারে।
  • বিজ্ঞপ্তি কেন্দ্রের সাইডবারটি শেষে বন্ধ ছিল না।

যদিও বিজ্ঞপ্তি কেন্দ্রের সাইডবারটি খোলা থাকে তখন এটি কাজ করে না।

set answer to text returned of (display dialog "" default answer "")
try
    set old to the clipboard as record
end try
try
    set text item delimiters to linefeed
    set the clipboard to paragraphs of answer as text
    tell application "System Events"
        tell process "Notification Center"
            click menu bar item 1 of menu bar 1
            try
                windows
            on error
                click menu bar item 1 of menu bar 1
                click menu bar item 1 of menu bar 1
            end try
            click button 1 of UI element 1 of row 2 of table 1 of scroll area 1 of window 1
            delay 0.1
            keystroke "av" using command down
            keystroke "d" using {shift down, command down}
            repeat 100 times
                try
                    delay 0.1
                    click menu bar item 1 of menu bar 1
                    exit repeat
                end try
            end repeat
        end tell
    end tell
end try
try
    set the clipboard to old
end try

কেবল এপিআই ব্যবহার করা সহজ হবে ।


হুম - আমাকে এপিআইতে সন্ধান করতে হবে। সেই প্লাস আমার লঞ্চার, লঞ্চবার ইউআই স্ক্রিপ্টিংয়ের চেয়ে অনেক ভাল। +1 এবং সম্ভবত একটি নতুন সেরা উত্তর।
bmike

0

ফ্যান্টাস্টিক! বিশ্বের অন্যভাবে দেখানোর জন্য ধন্যবাদ।

আমার সমাধানটি আমার পক্ষে কাজ করেছে, তবে এটি আপনার ক্ষেত্রেও রয়েছে।

আমি এফ এআর দ্বারা অ্যাপসক্রিপ্ট বিশেষজ্ঞ নই, তবে আমি এটির সাথে ফিডিং পছন্দ করি।

ধন্যবাদ!

আপনার কাছ থেকে আমি যা শিখেছি তা ব্যবহার করে, এখানে আমার পক্ষে কাজ করার অন্য উপায় রয়েছে। এটি বিকল্প কীবোর্ড বা ত্রুটিগুলি সম্পর্কে আপনার কিছু উদ্বেগকে মোকাবেলা করে না, তবে এটি সম্ভবত এএস-এ ছুরিকাঘাতকারী কোনও ব্যক্তির পক্ষে আলোকপাত করবে।

display dialog "Tweet?" default answer "" buttons {"OK"} default button 1 with icon 2
set mytweet to text returned of result

tell application "System Events"
    tell process "Notification Center"
        click menu bar item 1 of menu bar 1
        click button 1 of UI element 1 of row 2 of table 1 of scroll area 1 of window "window"
        keystroke mytweet
        keystroke "D" using {command down, shift down}
        repeat 100 times
            try
                delay 0.1
                click menu bar item 1 of menu bar 1
                exit repeat
            end try
        end repeat
    end tell
end tell
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.