API контактов Google с помощью Google JavaScript Client Lib
Я пытаюсь работать с API контактов Google v3.
Из-за аутентификации и авторизации OAuth2 я начинаю с клиентской библиотеки API Google для JavaScript.
У меня проблемы с нет с этой частью доступа к API.
Но после выполнения функции auth я не знаю, что делать дальше. Могу ли я использовать google-api-javascript-client для API контактов Google v3? В списке поддерживаемых API Google javascript-клиентом API-интерфейс контактов не отображается. Но у меня есть полный доступ с помощью инструмента OAuth 2.0 для игровых площадок.
Я действительно смущен, что клиент работает лучше всего с последним API контактов Google. Что такое gdata-javascript-client?
Ответы
Ответ 1
Чтобы использовать v3-контакты api с токеном аутентификации, предоставленным gapi (JS-клиент Google JS), это полезно, используя alt=&json
$.getJSON('https://www.google.com/m8/feeds/contacts/default/full/?access_token=' +
authResult.access_token + "&alt=json&callback=?", function(result){
console.log(JSON.stringify(result));
});
Ответ 2
Проблема, с которой вы сталкиваетесь, заключается в том, что API-интерфейс контактов 3 представляет собой более старый API, который работает с устаревшей GData Client Library. Поэтому он несовместим с новым клиентом JavaScript API Google API.
Теперь вам нужно будет загрузить и использовать библиотеку клиента GData. Для получения дополнительной информации о различии между библиотекой GData и клиентом API Google см. Этот недавний вопрос SO: gapi.client.load или google.load
Ответ 3
Я знаю, что это старый вопрос, но этот вопрос возникает при просмотре того, как читать информацию о контактах из учетной записи Google.
Если вам нужен только доступ к контакту, чтобы импортировать его или показать электронную почту, номера телефонов или другую информацию, и вам не нужно ее изменять, вы можете использовать API-интерфейс People (https://developers.google.com/people/). Для javascript вы можете проверить вкладку samples.
Я создал суть, которая является почти образцом Google, но добавляет параметры requestField.
https://gist.github.com/ddbb1977/7a4b408ed17c7249252a
Ответ 4
Несчастливый API контактов Google не работает с новой клиентской библиотекой Javascript. Он работает только с клиентской библиотекой GData. Я пробовал работать с клиентской библиотекой GData, но это сложно, так как вы получаете предупреждения в документации на каждом этапе, когда библиотека устарела.
Поэтому я использовал гидрид,
- используя новую клиентскую библиотеку, чтобы получить аутентификацию.
- Используйте URL-адрес, чтобы получить контакты
К сожалению, из-за ограничений кросс-домена вам нужно использовать JSONP, иначе браузер не работает.
<script src="https://apis.google.com/js/client.js"></script>
.....
function contactsInit() {
var clientId = 'YOURCLIENTID.apps.googleusercontent.com';
var scopes = 'https://www.google.com/m8/feeds';
gapi.auth.authorize({
client_id: clientId, scope: scopes, immediate: false},
handleAuthResult);
function handleAuthResult(authResult) {
if (authResult && !authResult.error) {
var url =
"https://www.google.com/m8/feeds/contacts/default/" +
"full?alt=json-in-script&access_token=" +
authResult.access_token +
"&max-results=7000&v=3.0";
var myJSONP = new Request.JSONP({
url: url,
callbackKey: 'jsoncallback',
data: {
},
onRequest: function(url){
// a script tag is created with a src equal to url
},
onComplete: function(data){
// the request was completed.
}
}).send();
}
}
}
function Skeleton() {}
if (!gdata) {
var gdata = new Skeleton();
gdata.io = new Skeleton();
gdata.io.handleScriptLoaded = function(data) {
processContacts(data);
}
}
Примечания:
Я использую Mootools для JSONP, но вы также можете использовать jquery или vanilla js с Как сделать JSONP-запрос из Javascript без JQuery?
Вам необходимо предоставить свой собственный YOURCLIENTID и определить функцию processContacts.
Требуется gdata.io.handleScriptLoaded(данные), так как это будет ожидаться во время обратного вызова.
Я использую предел 7000, но я не думаю, что это необходимо.
Если вы не хотите использовать JSONP, вы можете перенаправить access_token на свой веб-сервер и обработать URL-адрес там, например. с cURL или с Node.js просто замените json-in script на json.
В json-in script важна в браузере, так как в противном случае браузер кричит.
Благодаря другим ответам на этой странице, это указывало на меня в правильном направлении.
Я надеюсь, что Google сделает API-интерфейс Contact с новой клиентской библиотекой Javascript. Я надеюсь, что другие смогут использовать это решение тем временем.
Ответ 5
Для выбора списка контактов с помощью Google plus используйте это: -
<script src="https://apis.google.com/js/client.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script>
function auth() {
var config = {
'client_id': 'OAUTH_CLIENT_ID',
'scope': 'https://www.google.com/m8/feeds'
};
gapi.auth.authorize(config, function() {
fetch(gapi.auth.getToken());
});
}
function fetch(token) {
$.ajax({
url: "https://www.google.com/m8/feeds/contacts/default/full?access_token=" + token.access_token + "&alt=json",
dataType: "jsonp",
success:function(data) {
console.log(JSON.stringify(data));
}
});
}
В блоке HTML: -
<button onclick="auth();">GET CONTACTS FEED</button>
Выход будет иметь поле с контактом, содержащим номер телефона.
Убедитесь, что идентификатор клиента с консоли разработчика Google с надлежащим перенаправлением uri.
Ответ 6
Это то, что мы нашли для работы с отдельными данными:
var data = (JSON.stringify(data.feed.entry[0].gd$email, null, 4));
console.log(data);
Если вы запустите JSON.stringify(данные), вы можете увидеть все заголовки, которые вы можете вызвать.
Ответ 7
google contact v3 - ваш лучший друг для этой работы
здесь вы можете найти все возможные конечные точки запроса
https://developers.google.com/google-apps/contacts/v3/
как и для всех списков контактов, это конечная точка
https://developers.google.com/google-apps/contacts/v3/#retrieving_all_contacts
После получения аутентификации вы можете получить запрос на этот URL-адрес, чтобы получить список всех контактов
это пример в python http://code.google.com/p/gdata-python-client/source/browse/samples/contacts/contacts_example.py