2012-03-10 55 views
1

我正在關注教程。我在授權用戶方面遇到了一些麻煩。如何從Google Chrome擴展程序發送推文?

我正在向twitter發送用戶授權。由於這是Chrome擴展,並且沒有回調。我不知道如何代表該用戶發送推文。 我是如何做的事情:

  1. 我有一個背景頁面,其中包含授權用戶來自twitter的代碼。在用戶安裝擴展程序的時候,後臺頁面會將該用戶發送給twitter以進行授權。我的授權方法正在通過回撥進行呼叫。但不知道我是否有一切可以發佈推文。
  2. 現在當用戶點擊擴展圖標時,popup.html將會出現。在此頁面上,我希望用戶發送推文。怎麼樣?

以下是我的代碼:

manifest.json的

{ 
"name": "TweetChrome", 
"version": "1.0", 
"description": "Tweet from Chrome", 
"browser_action": { 
"default_icon": "images/share.png", 
"popup": "popup.html" 
}, 
"permissions": [ 
"tabs", 
"http://ajax.googleapis.com", 
"*://*.twitter.com/*", 
"clipboardWrite" 
], 
"options_page": "options.html", 
"background_page": "background.html" 
} 

background.html 我得到的回調方法的RESP一些HTML頁面的標記。我不知道它是爲了什麼?

var oauth = ChromeExOAuth.initBackgroundPage({ 
         'request_url': 'https://api.twitter.com/oauth/request_token', 
         'authorize_url': 'https://api.twitter.com/oauth/authorize', 
         'access_url': 'https://api.twitter.com/oauth/access_token', 
         'consumer_key': 'key', 
         'consumer_secret': 'secret', 
         'scope': '', 
         'app_name': 'TweetChrome' 
        }); 

       oauth.authorize(onAuthorized); 

      function onAuthorized() { 
       var url = 'https://api.twitter.com/oauth/authorize'; 
          /*as they are optional, i left empty*/ 
       var request = { 
       'force_login': '', 
       'screen_name': '' 
       }; 
       oauth.sendSignedRequest(url, callback, request); 
      }; 

      function callback(resp, xhr) { alert('it get called too'); }; 

popup.html 鳴叫我使用的是借來的twitter.js。我沒有寫它。

  Twitter.verify_credentials({install: true});   
     Twitter.update("test"); 

我的oauth方法是正確的在一個後臺頁面中?隨着我的授權越來越多,我要爲用戶發佈推文多遠?

任何幫助將不勝感激。我希望解決這個問題,以完成我的擴展。

回答

2

你不需要請求https://api.twitter.com/oauth/authorizeonAuthorized - 一旦你得到這個功能,你已經有一個密鑰,並且用戶已經過認證。

嘗試請求http://api.twitter.com/1/account/verify_credentials.json而不是onAuthorized。您應該看到帶有用戶信息的JSON響應。

+0

當用戶第一次來。他必須得到授權。在用戶授權後,我想我應該使用verify_credentials。然後我可以更新狀態。我的這種理解是對的嗎?其次,我的回調方法有混亂。我不知道我得到了什麼。它將訪問需要保存的令牌,但我不知道如何獲取它們。它的任何指針? – 2012-03-16 11:43:54

+0

圖書館爲你做這一切。您可以使用'sendSignedRequest'開始發出請求,並且庫將處理簽名等。 – 2012-03-26 19:11:12

相關問題