2014-01-02 3 views

ответ

2

Я смог использовать следующий метод для написания твитов.

Этот код Applescript используется для составления твита вручную с диалогом ввода текста и запускает сценарий оболочки, который проверяет и отправляет твит. Он не использует текст в Центре Growl или Notification Center.

Applescript код:

set q to display dialog "Tweet:" default answer "" 

    set myTweet to text returned of q 

    if (length of myTweet) > 140 then 
     display dialog "I'm pretty sure that tweet is too long (" & (length of t as text) & " chars)" buttons {"oh"} default button 1 
    else 
     set e to do shell script "cd /pathTo/folderContaining/;./tweet.sh <yourtwitterhandle> <yourtwitterpassword> \"" & myTweet & "\"" 
     if e ≠ "" then display dialog e buttons {"OK"} default button 1 
    end if 

У меня были некоторые проблемы с пределом характер, так что я обычно делаю мои твиты дополнительные короткие. Возможно, вы можете найти ограничение длины до 140 (см. Код AS: if (length of myTweet) > 140 then), который будет работать последовательно.

Вот сценарий оболочки; редактировался http://360percents.com/posts/command-line-twitter-status-update-for-linux-and-mac/,

Убедитесь, что вы называете это «tweet.sh» и сделать его исполняемым с помощью CHMOD или Kilometre.app (уведомление я закомментировать все отчеты, так что полностью работает тихо):

#!/bin/bash 
#Twitter status update bot by http://360percents.com 
#Author: Luka Pusic <[email protected]> 

#REQUIRED PARAMS (crg - now passed through command line) 
username=$1 
password=$2 
tweet=$3 #must be less than 140 chars 

#EXTRA OPTIONS 
uagent="Mozilla/5.0" #user agent (fake a browser) 
sleeptime=0 #add pause between requests 

if [ $(echo "$tweet" | wc -c) -gt 140 ]; then 
    echo "[FAIL] Tweet must not be longer than 140 chars!" && exit 1 
elif [ "$tweet" == "" ]; then 
    echo "[FAIL] Nothing to tweet. Enter your text as argument." && exit 1 
fi 

touch "cookie.txt" #create a temp. cookie file 
#crg - commented out all 'success' echos ... will only return string if error 
#GRAB LOGIN TOKENS 
#echo "[+] Fetching twitter.com..." && sleep $sleeptime 
initpage=$(curl -s -b "cookie.txt" -c "cookie.txt" -L --sslv3 -A "$uagent" "https://mobile.twitter.com/session/new") 
token=$(echo "$initpage" | grep "authenticity_token" | sed -e 's/.*value="//' | sed -e 's/" \/>.*//') 

#LOGIN 
#echo "[+] Submitting the login form..." && sleep $sleeptime 
loginpage=$(curl -s -b "cookie.txt" -c "cookie.txt" -L --sslv3 -A "$uagent" -d "authenticity_token=$token&username=$username&password=$password" "https://mobile.twitter.com/session") 

#GRAB COMPOSE TWEET TOKENS 
#echo "[+] Getting compose tweet page..." && sleep $sleeptime 
composepage=$(curl -s -b "cookie.txt" -c "cookie.txt" -L -A "$uagent" "https://mobile.twitter.com/compose/tweet") 

#TWEET 
#echo "[+] Posting a new tweet: $tweet..." && sleep $sleeptime 
tweettoken=$(echo "$composepage" | grep "authenticity_token" | sed -e 's/.*value="//' | sed -e 's/" \/>.*//' | tail -n 1) 
update=$(curl -s -b "cookie.txt" -c "cookie.txt" -L --sslv3 -A "$uagent" -d "authenticity_token=$tweettoken&tweet[text]=$tweet&tweet[display_coordinates]=false" "https://mobile.twitter.com/") 

#GRAB LOGOUT TOKENS 
logoutpage=$(curl -s -b "cookie.txt" -c "cookie.txt" -L --sslv3 -A "$uagent" "https://mobile.twitter.com/account") 

#LOGOUT 
#echo "[+] Logging out..." && sleep $sleeptime 
logouttoken=$(echo "$logoutpage" | grep "authenticity_token" | sed -e 's/.*value="//' | sed -e 's/" \/>.*//' | tail -n 1) 
logout=$(curl -s -b "cookie.txt" -c "cookie.txt" -L --sslv3 -A "$uagent" -d "authenticity_token=$logouttoken" "https://mobile.twitter.com/session/destroy") 

rm "cookie.txt"