0

私は oauth 1.0 を使用していますが、今まで Google からアクセス トークンを正常に取得できました。しかし、 https://www.google.com/m8/feeds/contacts/default/fullからユーザーの連絡先を取得したい場合、401 エラーが返され、それ以上の説明はありません。

Google Playground からの情報は実際には正確ではない可能性があることがわかりました。たとえば、手順 3 と手順 5 の署名ベース文字列には oauth_version が含まれていますが、間違っています。(oauth_version を含めると、signature_invalid が返され、oauth_version は含まれません)

これは私の要求です:

   HttpWebRequest req = (HttpWebRequest)WebRequest.Create(sbGetContacts.ToString());
        req.Method = "GET";
        req.Headers.Add(authHeader);
        HttpWebResponse res = (HttpWebResponse)req.GetResponse();

これは私のヘッダーです:

        string authHeader = "Authorization: OAuth " +
        "oauth_version=" + "\"" + "1.0" + "\"" + "\"," +
        "oauth_nonce=" + "\"" + nonce + "\"," +
        "oauth_timestamp=" + "\"" + timeStamp + "\"," +
        "oauth_consumer_key=" + "\"" + GoogleconsumerKey + "\"," +
        "oauth_token=" + "\"" + OauthToken+ "\"," +
        "oauth_signature_method=" + "\"" + "HMAC-SHA1" + "\"," +
        "oauth_signature=" + "\"" + UpperCaseUrlEncode(sig) + "\"";

誰でも問題を解決する方法を教えてもらえますか?

4

2 に答える 2

0

OAuth1 は非推奨です(Google により)。OAuth1 を使用して新しいコードを書くことにエネルギーを費やさないでください。OAuth2 では、署名と暗号はありません。OAuth1 を使用する必要がある理由はありますか? 知りたいです。Google で OAuth に取り組んでいます。

于 2013-07-20T06:16:46.987 に答える
0

実際:

データ アクセスの要求と同時にログインする (ハイブリッド) またはドメイン全体の権限の委任 (2LO) など、アプリケーションに特定の特殊な承認要件がある場合、現在 OAuth 2.0 トークンを使用することはできません。このような場合は、代わりに OAuth 1.0 トークンと API キーを使用する必要があります。アプリケーションの API キーは、Google API コンソールの [API Access] ペインの [Simple API Access] セクションにあります。

https://developers.google.com/google-apps/contacts/v3/?hl=frによると

そのため、API キーを渡す必要があります。key='YOUR_API_KEY' を URL に追加することでこれを行うことができますが、gdata クライアント ライブラリを使用している場合、どのように API キーを渡しますか?

于 2013-10-31T00:35:56.500 に答える