в течение многих часов в течение многих часов, теперь документы, кажется, являются ужасными. По сути, я пытаюсь получить доступ к чтению доступа к контактам пользователя OAUTT2 AUTPENTATEL, используя либо портативных контактов API или полного взрыва контактов API . У Google есть недавно началось , позволяющий OAUTH2 .
Я могу получить доступ к контактам пользователя с помощью контактов API контактов, сначала получив пользователя аутентификацию с помощью области: «https://www.google.com/m8/feeds». Тогда я могу получить их первые 25 контактов, используя jQuery (показанный код CoffeeScript )
$.ajax
url: "https://www.google.com/m8/feeds/contacts/default/full"
dataType: 'jsonp'
data: { access_token: token, alt: 'json-in-script' }
success: (data, status) ->
console.log "The returned data", data
, который работает, и я получаю данные JSON. Однако почти невероятно, единственным порядком контактов, которые Google предоставляет (насколько я могу сказать) - это « lastModified » (всерьез WTF?). Мне нужно что-то более похоже на «лучшие друзья» или «самые популярные».
Что, оказывается чем-то, что API Google портативных контактов может сделать , (Yay!). Конечно, я не могу получить успешный запрос на работу.
Во-первых, я получаю пользователя аутентификацию с портативными контактами API, нажав на эту ссылку (обратите внимание на область: «https://www-opensocial.googleusercontent.com/api/people") ]
Import Google Contacts
That И я получаю токен доступа, переданный обратно.
Далее я пытаюсь отправить запрос AJAX в портативные контакты API
$.ajax
url: "https://www-opensocial.googleusercontent.com/api/people/@me/@all"
dataType: 'jsonp'
data: { access_token: token, alt: 'json-in-script' }
success: (data, status) ->
console.log "The returned data", data
, но возвращает ошибку 403
403 (The currently logged in user and/or the gadget requesting data, does not have access to people data.
любые идеи, что я делаю не так?
Приложение
Я нашел Отчет об ошибках в форуме Google Oauth2, который посоветовал, что нам нужно установить заголовок авторизации при работе с портативными контактами API. Поэтому я попробовал это, как это:
$.ajax
url: "https://www-opensocial.googleusercontent.com/api/people/@me/@all"
dataType: 'jsonp'
data: { access_token: token, alt: 'json-in-script' }
beforeSend: (xhr) ->
xhr.setRequestHeader "Authorization", "OAuth #{token}"
data: { access_token: token }
success: (data, status) ->
console.log "The returned data", data
, но это получает то же самое 403 Ошибка:
403 (The currently logged in user and/or the gadget requesting data, does not have access to people data