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 アプリケーションに戻った後。
ここでは、すべての連絡先を取得するために 2 つの異なる方法を使用しました。
方法 1 - Web リクエスト:
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 になります。しかし、問題は、合計 246 の連絡先があるのに、最初の 25 の連絡先しか表示されないことです。
方法 2 - Google Contact 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.