我正在尝试在 asp.net Web 应用程序中访问 gmail 联系人。
我仍然可以从 google 获取 access_token,但是当我将此 access_token 发送到 google 联系人 api 时,它给了我错误。
下面是我从我的应用程序重定向的 url,用户通过提供他的电子邮件和密码进行身份验证。
https://accounts.google.com/o/oauth2/auth?scope=https://www.google.com/m8/feeds&redirect_uri=http://localhost:3223/WebSite1/Default.aspx&response_type=token&client_id=881595232473.apps.googleusercontent.com
在此用户使用访问令牌返回我的 Web 应用程序之后。
在这里,我使用了两种不同的方法来获取所有联系人:
方法 1 - 网络请求:
HttpWebRequest request1 = (HttpWebRequest)WebRequest.Create(url1);
HttpWebResponse response1 = (HttpWebResponse)request1.GetResponse();
System.IO.Stream ReceiveStream1 = response1.GetResponseStream();
StreamReader readStream1 = new StreamReader(ReceiveStream1);
string result = readStream1.ReadToEnd();
它工作正常,并给了我 XML 的结果。但问题是它只提供前 25 个联系人,而我总共有 246 个联系人。
方法 2 - 谷歌联系人 API:
RequestSettings rs = new RequestSettings("aman contact", Request.QueryString["access_token"].ToString());
rs.AutoPaging = true;
ContactsRequest cr = new ContactsRequest(rs);
PrintAllContacts(cr);
Feed<Contact> f = cr.GetContacts();
这里它给了我以下错误:
Execution of request failed: http://www.google.com/m8/feeds/contacts/default/full
在此之后,它向我显示了一个带有以下错误的黄页:
The remote server returned an error: (401) Unauthorized.