C#:无法获得Accesstoken。 Google日历API

时间:2012-05-15 01:52:38

标签: c# .net google-api oauth-2.0

您好我正在尝试使用Google日历API。我无法获得访问令牌。

以下是我目前正在使用的代码:

  private string ObtainAccessToken(string code)
    {
        string content =
                         "code=" + code + "&" +
                        "client_id=1016429729591.apps.googleusercontent.com&"+ 
                        "client_secret={MySecret}&" +
                        "redirect_uri=urn:ietf:wg:oauth:2.0:oob&" +
                        "grant_type=authorization_code";//authorization_code";
        Google.Apis.Authentication.HttpRequestFactory
                factory = new Google.Apis.Authentication.HttpRequestFactory();


        HttpWebRequest req = factory.Create(new Uri("https://accounts.google.com/o/oauth2/token?"+content), "POST");
        byte[] data = Google.Apis.Utilities.EncodeStringToUtf8(content);
        req.ContentLength = data.Length;

        req.ContentType = "application/x-www-form-urlencoded";

   req.GetRequestStream().Write(data, 0, data.Length);
        req.GetResponse();
    }

我关注的api文档在这里:https://developers.google.com/accounts/docs/OAuth2InstalledApp

我经常收到HTTP错误请求400错误。

我已经尝试过在这个问题中给出的解决方案,但它也不起作用: Google Calendar API - Bad Request (400) Trying To Swap Code For Access Token

有人可以指出我在这里做错了吗?

1 个答案:

答案 0 :(得分:0)

检查此示例:http://code.google.com/p/google-api-dotnet-client/source/browse/Tasks.SimpleOAuth2/Program.cs?repo=samples

这是一个使用OAuth 2.0来授权任务API请求的命令行应用程序,应该很容易使其适应使用Calendar API。