4

そのため、 から 400 を取得する際にこの問題が発生しましたhttp://www.tumblr.com/oauth/authorize?oauth_token=xxxこの Google Chrome OAuth チュートリアルページを使用し、そこからファイルをコピーするだけです。

そして、ある日、内線番号を再認証しなければならなくなるまで、すべてうまくいきました。そして、それは失敗しました。

コンソールにアクセスすると、400 http 結果コードとメッセージが表示されMissing or invalid oauth_verifier.ました。

4

1 に答える 1

9

1) 最初に解決すること: ? はどこにありoauth_verifierますか?

アプリを承認するときにtumblrによって行われたリクエストを確認しました。これがありましたhttp://www.tumblr.com/oauth/authorize?oauth_token=xxx

にリダイレクトされましたchrome-extension://jlaojpiafmimgibgdfbmphfkejnlifdn/chrome_ex_oauth.html?chromeexoauthcallback=true&oauth_token=XXX&oauth_verifier=dmbcbNDGj7QatrFznXG587RIM7wI1LG3bnKwYGy5tc2icmUVvE#_=_

検証者が配置されているのに、なぜ取得できないのでしょうか? には、現在の URL をデコードし、そこからパラメーターを取得するchrome_ex_oauth.jsこのメソッドがあります。ChromeExOAuth.formDecode()

そして、 315行目にマジックチェックがあります:

var keyval = param.split("=");
if (keyval.length == 2) {

ご覧のとおり、URL の末尾#_=_が何かおかしいです。最初に、このメソッドを少し書き直して、これを取り除くことにしoauth_verifierました。

2) うまくいかなかったoauth_verifier=dmbcbNDGj7QatrFznXG587RIM7wI1LG3bnKwYGy5tc2icmUVvE#_=_ので、このハッシュタグを完全にカットすることにしoauth_verifier=dmbcbNDGj7QatrFznXG587RIM7wI1LG3bnKwYGy5tc2icmUVvEました。

私にとってはまだ疑問です.Tumblrが私にフォローを求めているリダイレクトURLの最後にあるこのハッシュタグは何のためにあるのでしょうか?


少し変更した方法は次のようになります。

ChromeExOAuth.formDecode = function(encoded) {
  // Cut hash at the end of the url.
  var hash_index = encoded.indexOf('#');
  if ( hash_index > -1 ) {
    encoded = encoded.substring(0, hash_index);
  }

  var params = encoded.split("&");
  var decoded = {};
  for (var i = 0, param; param = params[i]; i++) {
    var keyval = param.split("=");
    if (keyval.length == 2) {
      var key = ChromeExOAuth.fromRfc3986(keyval[0]);
      var val = ChromeExOAuth.fromRfc3986(keyval[1]);
      decoded[key] = val;
    }
  }
  return decoded;
};
于 2013-05-24T21:40:59.237 に答える