0

我正在尝试构建一个 C# 应用程序来查询我的谷歌联系人,并将它们打印到控制台。

电子邮件地址是:bhmi12@gmail.com 非常好是谷歌应用程序的名称。

我有两个问题:

每次运行应用程序时我必须调用的第一个问题:

string url = OAuthUtil.CreateOAuth2AuthorizationUrl(parameters);

浏览 URL 并获得一个新的 AccessCode,即使谷歌声称你只需要这样做一次。然后你得到一个访问令牌。

第二个问题是这段代码不起作用,当它转到 PrintAllContacts 时,它在一个奇怪的异常下失败:

There is some error in your request thats all we know"(the google response 
to my request).

这是编写范围的正确方法吗?非常感谢。编码:

{
            OAuth2Parameters parameters = new OAuth2Parameters();    
            parameters.ClientId = @"my id";
            parameters.ClientSecret = @"my secret";
            parameters.RedirectUri = @"urn:ietf:wg:oauth:2.0:oob";
            parameters.ResponseType="code";
            parameters.Scope = @"https://www.google.com/m8/feeds/contacts/bhmi12%40gmail.com/full";

            //string url = OAuthUtil.CreateOAuth2AuthorizationUrl(parameters);
            parameters.AccessCode = @"";
            try
            {
                OAuthUtil.GetAccessToken(parameters);
                //OAuthUtil.RefreshAccessToken(parameters);
                var contacts = new ContactsRequest(new RequestSettings("excellent", parameters));
                PrintAllContacts(contacts);
            }
            catch (GDataRequestException e)
            {
                Console.WriteLine("Operation failed ({0}): {1}", e.Message, e.ResponseString);
            }
}
4

1 回答 1

0

不,范围是以下看起来像 URL 的常量字符串值: “https://www.googleapis.com/auth/contacts.readonly"

如果您打算修改用户的联系人,请改用: “https://www.google.com/m8/feeds"

参考:https ://developers.google.com/google-apps/contacts/v3/#authorizing_requests_with_oauth_20

于 2015-02-25T23:03:59.533 回答