РНР образец вы смотрите на это не последняя для Google+/authroization. Вы должны начать с последнего содержания в документации Google+:
Google+ PHP Quickstart
Quickstart показывает, как авторизовать клиента и передать полномочия на ваш PHP бэкэнд для вызовов API.
Если ваш сервер не запускает Phar, вы можете начать с кода примера из связанного вами файла PHP client library page и можете его обновить, чтобы выполнить обмен кодами на основе кода, переданного вашему Android-приложению, или авторизации пользователя с помощью доступ к токену/авторизационному коду из Интернета.
Следующий пример выполняет обмен кода для веб (как это делается в/подключении конечной точки в образце быстрого старта):
<?php
require_once 'google-api-php-client/src/Google_Client.php';
require_once 'google-api-php-client/src/contrib/Google_PlusService.php';
// Set your cached access token. Remember to replace $_SESSION with a
// real database or memcached.
session_start();
$client = new Google_Client();
$client->setApplicationName('Google+ PHP Starter Application');
// Visit https://code.google.com/apis/console?api=plus to generate your
// client id, client secret, and to register your redirect uri.
$client->setClientId('YOUR_CLIENT_ID');
$client->setClientSecret('YOUR_CLIENT_SECRET');
$client->setDeveloperKey('YOUR_SIMPLE_API_KEY');
$plus = new Google_PlusService($client);
if (isset($_GET['webcode'])) {
$client->setRedirectUri('postmessage');
$client->authenticate($_GET['webcode']);
$_SESSION['token'] = $client->getAccessToken();
$activities = $plus->activities->listActivities('me', 'public');
print 'Your Activities: <pre>' . print_r($activities, true) . '</pre>';
}
Чтобы увидеть код работу, вам нужно будет генерировать код из веб-клиент:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<span id="signinButton">
<span
class="g-signin"
data-callback="signinCallback"
data-clientid="YOUR_CLIENT_ID"
data-cookiepolicy="single_host_origin"
data-requestvisibleactions="http://schemas.google.com/AddActivity"
data-scope="https://www.googleapis.com/auth/plus.login">
</span>
</span>
<table>
<tr>
<th>Code</th><th>ID Token</th><th>Access token</th>
</tr>
<tr>
<td><textarea id="code"></textarea></td>
<td><textarea id="idtok"></textarea></td>
<td><textarea id="atok"></textarea></td>
</tr>
</table>
<script type="text/javascript">
(function() {
var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
po.src = 'https://apis.google.com/js/client:plusone.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
})();
function signinCallback(resp) {
console.log(resp);
document.getElementById('code').value = resp.code;
document.getElementById('idtok').value = resp.id_token;
document.getElementById('atok').value = resp.access_token;
}
</script>
</body>
</html>
И затем передаст его скрипту php в качестве параметра веб-кода. Я создал демо, который работает от wheresgus.com/phptest/stackdemo.php и вы можете сгенерировать код из http://wheresgus.com/phptest/gencode.html
Пример ПОЛУЧИТЬ будет выглядеть следующим образом:
http://wheresgus.com/phptest/stackdemo.php?webcode=4/ajfCXQiZo-zRBAJGktP_eSYRha2s.YiEFJjWUiW4bEnp6UAPFm0GQNJMGhgI
На практике, вы должны размещать свой код через HTTPS; но чтобы вы начали, надеюсь, это помогает.
Для мобильных клиентов, вы должны быть в состоянии проверить, используя идентификатор маркера следующим образом:
- Безопасно передать идентификатор маркера для приложения
- Убедитесь, что маркер является действительным, и принадлежит к правильному приложению
- Используйте подполе, чтобы определить ваш пользователь
следующий код показывает функцию в том же приложении, которое проверяет маркер и использует простой доступ API для выполнения activi ties.list для подписанного в систему пользователя:
if (isset($_GET['idtoken'])) {
$attributes = $client->verifyIdToken($_GET['idtoken'], CLIENT_ID)
->getAttributes();
$gplus_id = $attributes["payload"]["sub"];
// At a minimum, make sure the token was for this app.
if ($attributes["payload"]["aud"] == $client->getClientId()){
$activities = $plus->activities->listActivities($gplus_id, 'public');
print 'Your Activities: <pre>' . print_r($activities, true) . '</pre>';
}else{
print 'Authorization failed.';
}
}
Full code available here.
Плотина, мой сервер не поддерживает композитора. – DVassilev
Я посмотрю, есть ли альтернативный пример. Если нет, я мог бы собрать еще один пример. – class
спасибо, это было бы очень признательно! – DVassilev