के माध्यम से Google संपर्क एपीआई एक्सेस करना मैं वर्तमान में ओएथ 2.0 और एक तथाकथित सेवा खाते के माध्यम से Google संपर्कों तक पहुंच लागू कर रहा हूं। सेवा खाता सामान्य उपयोगकर्ता के लिए "[email protected]" उत्पन्न होता है।ओएथ 2.0 और निजी कुंजी उर्फ सेवा खाता
कोड OAuth 2.0 साख उत्पन्न करने के लिए है: यह है कि मैं किसी भी एक संपर्क नहीं मिलता है
ContactsService myService = new ContactsService(
"myApp");
myService.setOAuth2Credentials(getCredentials());
URL feedUrl = new URL("https://www.google.com/m8/feeds/contacts/default/full");
Query myQuery = new Query(feedUrl);
ContactFeed resultFeed = myService.query(myQuery, ContactFeed.class);
// Print the results
for (ContactEntry entry : resultFeed.getEntries()) {
System.out.println(entry.getName().getFullName().getValue());
System.out.println("Updated on: " + entry.getUpdated().toStringRfc822());
}
समस्या
:
public static GoogleCredential getCredentials() throws GeneralSecurityException, IOException {
GoogleCredential credential = new GoogleCredential.Builder().setTransport(HTTP_TRANSPORT)
.setJsonFactory(JSON_FACTORY)
.setServiceAccountId(SingleUserCredentials.SERVICE_ACCOUNT_EMAIL)
.setServiceAccountScopes("https://www.google.com/m8/feeds")
.setServiceAccountPrivateKeyFromP12File(new File(SingleUserCredentials.SERVICE_ACCOUNT_PKCS12_FILE_PATH))
.build();
credential.refreshToken();
return credential;
}
मैं तो के माध्यम से संपर्क प्राप्त करने का प्रयास कर रहा हूँ मेरे खाते से फ़ीड हमेशा खाली है। कोई त्रुटि नहीं है कुछ भी तो नहीं।
एक ही दृष्टिकोण के माध्यम से Google Apps प्रबंधित डोमेन तक पहुंचने पर यह अच्छी तरह से काम करता है।
मुझे आश्चर्य है कि संपर्क एपीआई सामान्य (उर्फ @ gmail.com) खातों के लिए ओएथ 2.0 का समर्थन करता है जब पी 12 कुंजी फ़ाइल और सेवा खाता का उपयोग करते हैं।
हे बेनामी, उत्तर के लिए धन्यवाद। हालांकि आप किसी डोमेन पर कुंजी आधारित OAuth 2.0 पहुंच के लिए दृष्टिकोण का वर्णन कर रहे हैं। ऊपर वर्णित अनुसार यह मेरे लिए ठीक काम करता है। मैं वास्तव में जो खोज रहा हूं वह एक सामान्य उपयोगकर्ता के माध्यम से संपर्कों का उपयोग करने का एक समाधान है जैसे [email protected] - Google प्रबंधित डोमेन के बिना। मुझे आशा है कि उपरोक्त मेरा प्रश्न उस संबंध में समझ में आता है। –