google api v3查询谷歌联系人.NET

时间:2015-02-24 21:26:28

标签: c# .net google-api google-shared-contacts

我正在尝试构建一个C#应用程序,用于查询我的Google联系人,并将其打印到控制台。

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

我有两个问题:

第一个问题每次我运行应用程序时我都要打电话:

string url = OAuthUtil.CreateOAuth2AuthorizationUrl(parameters);

浏览网址并获得一个新的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);
            }
}

1 个答案:

答案 0 :(得分:0)

没有。范围是以下常量字符串值,看起来像URL: 的" HTT的 的PS://www.googleapis.com/auth/contacts.readonly"

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

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