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%3D1334790691%26scope%3Dhttps%253A%252F %252Fwww.googleapis.com%252Fauth%252Fuserinfo.profile

我不确定签名的哪一部分可能是错误的,因为我向它传递了所有必需的参数,它们都是基本字符串。任何想法?

4

0 回答 0