2011-08-07 68 views
1

我有web應用程序,用戶可以從twitter登錄並根據他們的偏好和DOM事件,我需要在twitter上更新他們的狀態。我有一個好主意如何在服務器端做到這一點,但對於這個項目,我沒有使用任何服務器端代碼,所以我怎麼能做到這一點只是JavaScript,@anywhere嘰嘰喳喳API和Twitter的意圖是帶我到哪裏因爲他們提示用戶提交我不想要的推文。在不提示用戶使用純JavaScript的情況下更新twitter狀態

+1

聽起來像虐待等待發生。我同意Twitter。 – tjameson

回答

0

您應該可以通過對REST API的AJAX POST請求來執行此操作。文檔:https://dev.twitter.com/docs/api/1/post/statuses/update

您針對URL http://api.twitter.com/1/statuses/update.format,其中format可以是xmljson,體現了響應的格式。所需的數據是狀態文本,並有幾個可選參數,我不會在這裏列出。這僅適用於當前已通過身份驗證的用戶。使用jQuery

的(未經測試)例如:

var message = "This is a tweet, there are many like it but this one is mine"; 

$.ajax({ 
    type: "POST", 
    url: "http://api.twitter.com/1/statuses/update.json", 
    data: "status="+message, 
    datatype: "json" 
}); 
+0

不,它不工作,我相信身份驗證令牌必須作爲HTTP請求標頭髮送。哪些不是以$ .ajax()方法發送的。 –

+0

這似乎有點太簡單。雖然oAuth令牌不會被使用頭部發送。假設您已授權用戶並擁有所有必需信息,則可以使用此處所述的步驟構建訪問令牌:https://dev.twitter.com/docs/auth/oauth#auth-request(我從未說過它會很容易!) – shanethehat

+0

@ShivDeepak:我很確定你可以在做Ajax時定製頭文件。 – hugomg

3

純JavaScript解決方案消耗的Twitter API是不可能不影響你的用戶的密鑰。 Twitter API使用HMAC-SHA1令牌對每個請求進行身份驗證,SHA1令牌是使用twitter爲您的api帳戶分配的公鑰/私鑰生成的。如果您打算使用純JavaScript SHA1實現生成此令牌,那麼這意味着您將在任何人都可以查看的JavaScript代碼中公開您的私鑰。

儘管技術上它是可能的(只要你可以找到一個實現SHA1的JavaScript庫),但它不可取。

僅供參考,jQuery.Ajax方法可以讓您通過點擊beforeSend(jqXHR,settings)方法來修改ajax請求的標頭。

相關問題