Подтвердить что ты не робот

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?

4b9b3361

Ответ 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