Intereting Posts
Можно ли получить специальную информацию о локальном диске с PHP? Ошибка Google map api v3 Класс Doctrine \ Common \ Collections \ ArrayCollection не является допустимым сущностью или отображенным суперклассом Отправка нескольких вложений по электронной почте с помощью PHP Простой вход в PHP с файлом cookie Есть ли простой способ в PHP преобразовать из строк, таких как «256M», «180K», «4G» в их целочисленные эквиваленты? php geo ip loc не работает Может ли синтаксис <? = $ Var?> Вызывать проблемы? Как сохранить данные регистрации в двух таблицах с помощью проверки подлинности JWT в CakePHP 3 как исправить Неопределенная переменная: коллабораторы в domPDF в Laravel Является ли этот код php безопасным? str_getcsv сломан, клики диакритики? PHP, Недопустимые символы в декодировании JSON DOM PDF генерирует только 1 страницу pdf пропустить оставшееся содержимое Symfony2 / Doctrine: SQL to DQL для построителя запросов в репозитории, чтобы создать форму поиска

Используя учетную запись службы, getAccessToken () возвращает null

Я использую следующий код PHP, используя клиентские библиотеки, найденные здесь: https://code.google.com/p/google-api-php-client/ . У меня нет ошибок для какого-либо из этого кода, но когда я вызываю getAccessToken() , он возвращает null.

Я разрешил доступ к этой учетной записи службы в своем личном календаре и предоставил полный доступ к проекту через API-консоль.

Есть идеи?

 require_once 'google-api-php-client/src/Google_Client.php'; const CLIENT_ID = 'blahblahblah'; const SERVICE_ACCOUNT_NAME = 'blahblahblah@developer.gserviceaccount.com'; const KEY_FILE = 'path/to/privatekey.p12'; $google_client = new Google_Client(); // created only to initialized static dependencies $client = new Google_OAuth2(); // you really just need Google_OAuth2 $key = file_get_contents(KEY_FILE); $client->setAssertionCredentials( new Google_AssertionCredentials( SERVICE_ACCOUNT_NAME, array('https://www.googleapis.com/auth/calendar'), $key ) ); var_dump($client->getAccessToken()); 

По какой-то причине это, казалось, работало:

 require_once 'google-api-php-client/src/Google_Client.php'; const CLIENT_ID = 'blahblahblah'; const SERVICE_ACCOUNT_NAME = 'blahblahblah@developer.gserviceaccount.com'; const KEY_FILE = 'path/to/privatekey.p12'; const CALENDAR_SCOPE = "https://www.googleapis.com/auth/calendar"; $key = file_get_contents(KEY_FILE); $auth = new Google_AssertionCredentials( SERVICE_ACCOUNT_NAME, array(CALENDAR_SCOPE), $key ); $client = new Google_Client(); $client->setScopes(array(CALENDAR_SCOPE)); $client->setAssertionCredentials($auth); $client->getAuth()->refreshTokenWithAssertion(); $accessToken = $client->getAccessToken(); $client->setClientId(CLIENT_ID); 

Если кто-то может объяснить, почему это сработало, отредактируйте этот ответ или комментарий!