2

現在のユーザーのフォロワーを取得する必要があるクロム拡張機能を作成しています。tumblr API は、ここにリストされているように、oauth を実装してリクエストを送信する必要があることを示しています。例に従って oauth を実装し、Google hereのライブラリを使用しました。

その結果、oauth.authorize関数は実行されましたが、コールバック関数onFollowersが呼び出されず、何らかの理由で tumblr からの応答が得られていないと思いました。

これは私が最終的に得たコードです:

background.html:

<html>
    <script type="text/javascript" src="chrome_ex_oauthsimple.js"></script>
    <script type="text/javascript" src="chrome_ex_oauth.js"></script>
    <script type="text/javascript" src="background.js"></script>
</html>

background.js:

var oauth = ChromeExOAuth.initBackgroundPage({
  'request_url' : 'POST http://www.tumblr.com/oauth/request_token',
  'authorize_url' : 'http://www.tumblr.com/oauth/authorize',
  'access_url' : 'POST http://www.tumblr.com/oauth/access_token',
  'consumer_key' : '[key provided]',
  'consumer_secret' : '[secret provided]',
  'app_name' : '[app name]'
});

var followers = null;
var baseHostname = localStorage.getItem('BaseHostname');

function onFollowers(text, xhr) {
    //parsing JSON response
}

function getFollowers() {
  oauth.authorize(function() {
    var url = "api.tumblr.com/v2/blog/"+baseHostname+"/followers";
    oauth.sendSignedRequest(url, onFollowers, {
      'parameters' : {
        'base-hostname' : baseHostname
      }
    });
  });
};

chrome.extension.onMessage.addListener(
  function(request, sender, sendResponse) {
    if (request.greeting == "getFollowers")
      console.log(baseHostname);
      getFollowers();
      sendResponse({farewell: "getFollowers function run success"});
  });

何か不足していますか?

4

1 に答える 1

0

こちらをご覧ください: Chrome 拡張機能内で Tumblr の API に POST リクエストを行う

あなたかもしれない

sendSignedRequest

パラメータを逆にする必要がありますか?最初の方法は、 urlよりも?

于 2012-09-09T14:13:05.713 に答える