2012-07-02 4 views
1

흥미로운 사례가 발생하여 Google Contacts API의 설명서가 올바르지 않은 것으로 나타났습니다.인증 된 사용자 정보를 가져올 수는 없지만 Google 주소록에서 주소록을 가져올 수 있습니다.

내가 이미 URL을 사용하여 응용 프로그램에 대한 권한을 부여하고있다 인증 된 사용자의 연락처 정보를 얻고있다 할 노력하고있어 :

https://www.google.com/m8/feeds/contacts/default/full/contactId

이 호출의 결과입니다 항상 상태 404. 그러나, 전체 주소록을 얻으려고 할 때, 그것은 잘 작동하는 것 같습니다.

https://www.google.com/m8/feeds/contacts/default/full

는 잘못 설명되어 있습니다 아니면 내가 뭔가 잘못하고 있어요? 인증 된 사용자의 연락처 정보를 얻을 수 없어도 전체 주소록을 가져올 수는 없습니다.

내가 사용 범위는 다음과 같습니다

https://www.google.com/m8/feeds

감사합니다, 잭


추가 정보입니다. API 설명서는 다음을 보여줍니다

public static ContactEntry retrieveContact(ContactsService myService) { 
    ContactEntry contact = 
     myService.getEntry(new URL("https://www.google.com/m8/feeds/contacts/default/full/contactId"), 
      ContactEntry.class); 
    // Do something with the contact. 
    return contact; 
} 

이 "contactId의"키워드가 URL의 일부로 사용한다는 것을 의미하는 것 같다. 그것은 단지 나를 위해 작동하지 않습니다.


이 질문을 명확히하기 위해. 목표는 데이터를 여러 번 가져 오는 해결 방법을 거치지 않고 현재 인증 된 사용자에 대한 정보를 얻는 것입니다. 모든 연락처를 먼저 가져 오는 방법으로도 인증 된 사용자의 연락처 ID가 다시 표시되지 않았습니다.

답변

1

당신이 얻으려고하는 것에 따라 다릅니다. https://www.google.com/m8/feeds/contacts/default/full으로 전화하면 모든 연락처를 찾고 있습니다. 이제 연락처를 가져 오면 https://www.google.com/m8/feeds/contacts/default/full/ {contactID}을 사용하여 단일 연락처의 데이터를 요청할 수 있습니다. 여기서 {contactID}는 전체 연락처 목록의 마지막 부분입니다. http://www.google.com/m8/feeds/contacts/ {user email}/base/{contact id} (으)로 표시됩니다.

전체 연락처 목록을 되 찾으면 하나의 연락처에 다음과 같은 ID 입력란이 표시됩니다. http://www.google.com/m8/feeds/contacts/ {사용자 이메일}/base/{contact id}. 마지막 {연락처 ID}를 사용하여 통화가 끝날 때까지 추가하면 (https://www.google.com/m8/feeds/contacts/default/full/{contactID}) 연락을 받게됩니다. 그 연락처에 대한 정보.

+0

실제로 이것은 전혀 이상하지 않습니다. 내가하려는 것은 인증 된 사용자의 연락 정보 만 얻는 것입니다. 내가 먼저 연락처 목록을 가져 오기 위해 전화를해야한다면, 어쨌든 인증 된 사용자의 연락처 ID를 알지 못합니다. 나는 그것을 보았다. 그리고 그것은 명확히 첫번째 사람도 아니다. 플래그가 있더라도 목록 전체를 반복해야하는데 이는 매우 비효율적입니다. API를 살펴보면 "contactId"를 URL의 일부로 사용해야 함을 알 수 있습니다 (https://developers.google.co.kr/google-apps/contacts/v3/# retrieving_a_single_contact). – juminoz

+0

아. 지금은 이해. https://www.google.com/m8/feeds/contacts/default/full 호출에 대한 응답으로 이라는 루트 요소가 표시됩니다. 그 안에는 요소가 있습니다. 여기에는 인증 된 사용자의 전자 메일 주소가 있습니다. –

+0

흠 ... 그건 여전히 백엔드에 대한 불필요한 추가 호출입니다. 이것이 완료되어야하는 방법이라면, 연락처 ID를 얻기위한 최소한의 로직을 가진 API를 찾아야 할 것입니다. 프로필 API에서도 동일한 문제가있는 것 같습니다. – juminoz

관련 문제