Я хочу иметь два потока, где на первой странице я просто прошу пользователя войти в систему.
Затем, если он / она хочет пригласить друзей, я хочу запустить метод gapi.client.people.list
и получить список видимых кругов.
Поскольку я делаю это на двух отдельных страницах, я не могу пройти через объект gapi, который был аутентифицирован. Я не хочу снова запускать процесс входа в систему, но если я сделаю напрямую gapi.client.load
, мне будет выдано сообщение Daily unauthenticated usage limit exceeded
.
function getFriends(e)
{
gapi.client.load('plus','v1', function(){
//gapi.client.setApiKey("myKey");
var request = gapi.client.plus.people.list({
'userId': 'me',
'collection': 'visible'
});
request.execute(function(people) {
console.log(people);
$('#googleFriends').empty();
$('#googleFriends').append('Number of people visible to this app: ' +
people.totalItems + '<br/>');
for (var personIndex in people.items) {
person = people.items[personIndex];
$('#googleFriends').append('<img src="' + person.image.url + '">');
}
});
});
}
Есть ли здесь решение? Я пробовал использовать gapi.client.setApiKey
, но он продолжает возвращать invalid key error
.
Я прочитал и попытался понять руководство Google по быстрому запуску, но там они вызывают people.list
как часть процесса входа.
1 ответ
Если пользователь уже вошел в систему / авторизовал ваше приложение, вы можете использовать метод gapi.auth.authorize
с теми же параметрами client_id
и scope
, которые вы использовали для входа, и immediate
установлен на true
.
gapi.auth.authorize({
client_id: 'your_client_id',
scope: 'your_scopes',
immediate: true
}, function (authResult) {
// check authresult and then call getFriends
});
Это будет проходить через процесс аутентификации без какого-либо взаимодействия с пользователем, и gapi.client
сможет совершать авторизованные вызовы. Однако вам нужно будет проверить ответ в обратном вызове, чтобы убедиться, что вы действительно авторизованы.
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Имейте в виду, что JavaScript — это НЕ то же самое, что Java! Включите все ярлыки, относящиеся к вашему вопросу; например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [svelte] и т. д.
gapi.auth.authorize
. Мне вообще нуженgapi.client.load
. Простите мою наивность, если это очевидноgapi.client.load
, который загружает специальные методы API, иначе вы не сможете вызывать методыgapi.client.plus
.