0

単一の連絡先を取得しようとしています。リンクには、次のように書かれています。

public static Contact retrieveContact(ContactsRequest cr)
{
  Contact contact = cr.Retrieve<Contact>("https://www.google.com/m8/feeds/contacts/default/full/contactId");
  return contact;
}

連絡先のセルフリンク URL や contactId を知るにはどうすればよいでしょうか? さまざまなバリエーションを試しました:

https://www.google.com/m8/feeds/contacts/default/full/firstname.lastname https://www.google.com/m8/feeds/contacts/ourdomain.com/full/firstname.lastname https: //www.google.com/m8/feeds/contacts/firstname.lastname%40ourdomain.com/full/firstname.lastname

しかし、適切な戻り値を取得できないようです。私が得ているのは Not Found 例外だけです。

完全なエラー メッセージは次のとおりです。

{"リモート サーバーがエラーを返しました: (404) 見つかりません。"}

すべての連絡先を取得すると、適切なクエリを実行できるため、サービスに接続できます。しかし、単一の連絡先を取得するのに少し困惑しています。

誰かがすでにこれに取り組んでいますか?

アドバイスをいただければ幸いです。

更新: たとえば、次のような ContactsQuery を使用する場合:

    ContactsQuery query =
                    new ContactsQuery("https://www.google.com/m8/feeds/profiles/domain/" + this.domain + "/full");
query.Query = ?????

(ユーザー名または電子メール アドレスに基づいて) 1 人のユーザーを実際に取得できるようにするには、クエリ オブジェクトで何を指定すればよいでしょうか?

更新: GAM ( https://code.google.com/p/google-apps-manager/ ) を使用して特定のユーザーを取得したところ、多数の数字で構成される ID フィールドがありました。上記の URI の ContactID フィールドの代わりにそれを使用しようとしましたが、すべてのバリエーションで 403 Not Found エラーが返されます。

4

3 に答える 3

0

www.google.com/m8/feeds/contacts/default/full?q=lastname+firstname+... を使用すると、結果を更新したいものだけに限定できます。「エントリ」の結果から「ID」を取得すると、「http://www.google.com/m8/feeds/contacts/yourself%40gmail.com/base/7e」のように形成されていることがわかります。ID、7eこの場合、"/base/" の後です。

www.google.com/m8/feeds/contacts/default/full/7e を使用すると、要求されたユーザーのエントリが取得されます。

これは、 https://developers.google.com/google-apps/contacts/v3/#retrifying_a_single_contactの情報から推測できます

于 2014-02-05T20:30:49.023 に答える