0

RequestToken の Google API を呼び出しており、OAuhtBase を使用して署名を生成しています。私のコードは次のようになります。

 public Uri BaseURL
        {
            get { return new Uri("https://www.google.com/accounts/OAuthGetRequestToken");  }
            set { }
        }
        public string ConsumerKey
        {
            get { return "anonymous"; }
        }
        public string Nonce
        {
            get { return oAuthBase.GenerateNonce(); }
        }
        public string SignatureMethod
        {
            get { return "HMAC-SHA1"; }
        }
        public string Signature { get
        {
            string url;
            string requestParams;
            return HttpUtility.UrlEncode(oAuthBase.GenerateSignature(BaseURL, ConsumerKey, ConsumerSecret, string.Empty, string.Empty,
                                               "GET", Timestamp, Nonce, out url, out requestParams));
        }
        }
        public string Timestamp
        {
            get { return oAuthBase.GenerateTimeStamp(); }
        }
        public string Scope
        {
            get { return "https://www.googleapis.com/auth/userinfo.profile"; }
        }
        public string Callback
        {
            get { return "www.contestfactory.com"; }
        }


          public string GenerateURL()
          {

             var returnURL = new StringBuilder(BaseURL.ToString());

             returnURL.Append("?");
             returnURL.Append("oauth_consumer_key=" + ConsumerKey);
             returnURL.Append("&oauth_signature_method=" + SignatureMethod);
             returnURL.Append("&oauth_signature=" + Signature);
             returnURL.Append("&oauth_timestamp=" + Timestamp);
             returnURL.Append("&oauth_nonce=" + Nonce);
             returnURL.Append("&oauth_callback=" + Callback);
             returnURL.Append("&scope=" + Scope);

              return returnURL.ToString();

          }

さて、私の JavaScript がこのコードによって生成された URL を参照しようとすると。ブラウザで次のエラーが返されます。

signature_invalid base_string:GET&https%3A%2F%2Fwww.google.com%2Faccounts%2FOAuthGetRequestToken&oauth_callback%3Dwww.contestfactory.com%26oauth_consumer_key%3Danonymous%26oauth_nonce%3D400857%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1334%D25%D25%D25%スコープ%252Fwww.googleapis.com%252Fauth%252Fuserinfo.profile

必要なすべてのパラメーターを渡しているため、署名のどの部分が間違っている可能性があるかはわかりません。それらはすべて基本的な文字列です。何か案が?

4

0 に答える 0