0

ClientLogin認証を使用して、かなり長い間C#コードでGoogleリーダーにアクセスしています。私はWindows8用のGoogleリーダークライアントに取り組んでおり、より安全なOAuth2認証を使用することにしました。ログインしてアクセストークンを取得し、トークンを更新できますが、アクセストークンを使用してAPI呼び出しを行うことができず、401Unauthorizedエラーが発生します。そして、私のトークンには「ya29」で始まる多くの文字が付属しています。トークンが正しいことを願っています。「Authorization:」ヘッダーを渡すときにHttpClientクラスを使用しています。誰かが私を助けてくれませんか?以下は私のコードスニペットです

private async Task<string> HttpGet()
    {
    string url = "http://www.google.com/reader/api/0/subscription/list";
        HttpClient client = new HttpClient();
        client.DefaultRequestHeaders.Add("Authorization", 
            String.Format("OAuth access_token={0}", Token);

        var response = await client.GetAsync(url);
        var content = await response.Content.ReadAsStringAsync();
        return content;
    }
4

3 に答える 3

1

正しい Authorization ヘッダー形式を使用していないようです。https://developers.google.com/accounts/docs/OAuth2WebServer#callinganapiによると、ヘッダーは次のようになります。

Authorization: Bearer ya29.xxxxxxxxxxxx
于 2013-01-13T22:42:48.643 に答える
0

RestSharpの使用をお勧めします。HttpClientよりもはるかに使いやすく、さらにOAuth1と2もサポートされています。使用方法のチュートリアルは次のとおりです。

http://www.codeproject.com/Articles/321291/Google-OAuth2-on-Windows-Phone

于 2013-01-10T09:25:14.787 に答える
0

提案してもいいですか?

私は oauth コードを書くのが嫌いです。

アプリケーションに Google 認証を追加する最も簡単な方法は、Windows Azure Mobile Services (WAMS) を使用することです。WAMS は、Live ID、FaceBook、および Twitter も有効にする SDK を通じて、oauth の詳細を処理します。C# と JavaScript、Android、iOS です。何よりも、それは無料です。

引用: http://www.windowsazure.com/en-us/home/features/mobile-services/

于 2013-01-11T05:59:29.560 に答える