Intereting Posts
Как расшифровать зашифрованную строку php с помощью Android? Отобразить меню WordPress на определенных страницах Я продолжаю получать сообщение об ошибке на нашем сайте. Предупреждение: mysqli_real_escape_string () ожидает ровно 2 параметра, 1 задано в … Сравнение поплавков – такое же число, но не равно? Необходимое руководство по перенаправлению пользователя, если он не вошел в систему на панели администратора PHP: mysql_connect не возвращается FALSE После загрузки страницы ничего не отображается разные сеансы с URL-адресом URL-адреса и без-www Mod_Rewrite .Htaccess Как получить ОС, на которых работает PHP? PDO FETCH_CLASS со связанными таблицами Yii: измените стиль имени пользователя в заголовке при входе в систему Как заменить все перерывы строк XHTML / HTML (<br>) на новые строки? Заменить URL-адреса в тексте HTML-ссылками Разбор простого текста таким образом, чтобы распознать пользовательский оператор if

Получение информации о пользователе Google-PHP-Client?

Во-первых, я просто хочу сказать, какую информацию мне нужно получить от пользователя.

  • Полное имя (первое / последнее)
  • Адрес электронной почты (основная учетная запись, а не @ google-plus.com)
  • Расположение (Страна, Штат, город, адрес)
  • Имя пользователя Youtube

Чтобы получить всю эту информацию, я пошел и загрузил / установил здесь библиотеку PHP-Client.

Поскольку это мой первый раз, используя API, я огляделся и нашел следующие области:

$client->setScopes(array('https://www.googleapis.com/auth/youtube.readonly', 'https://www.googleapis.com/auth/userinfo.profile', 'https://www.googleapis.com/auth/userinfo.email')); 

По какой-то причине, когда я запускаю это: $myData = $GoogleData->userinfo->get('me'); я получаю это:

Undefined property: Google_Service_Plus::$userinfo in path/test.php on line 61

Не слишком уверен, что я делаю неправильно, или даже если я должен использовать Google Plus Api, чтобы получить эту информацию.

Мне нужна электронная почта Главной учетной записи (Содержит все каналы YouTube) и адрес пользователей и т. Д. Чтобы они зарегистрировались в своей учетной записи Google. Как получить эту информацию и что я делаю неправильно в моем примере выше?

Я фактически создал чат-комнату, посвященную всем вещам API Google ( перейдите сюда )

Это также приводит меня к другому моменту. Почему документация sooo устарела и не позаботилась. Большинство примеров, которые я вижу, два года назад, но я использую то, что было обновлено пару месяцев назад.

Использование новой версии библиотеки PHP (в настоящее время 1.0.4-бета на GitHub ):

 require_once 'lib/Google/Client.php'; require_once 'lib/Google/Service/Plus.php'; $google_client = new \Google_Client; $google_client->setClientId(GOOGLE_CLIENT_ID); $google_client->setClientSecret(GOOGLE_CLIENT_SECRET); $google_client->setRedirectUri(GOOGLE_REDIRECT_URI); $google_client->setDeveloperKey(GOOGLE_DEVELOPER_KEY); $google_client->setAccessType = 'offline'; // Either call: // $google_client->authenticate($auth_code); // with the $auth_code returned by the auth page or // $google_client->setAccessToken($existing_token); // with a previously generated access token. $plus = new \Google_Service_Plus($google_client); $person = $plus->people->get('me'); print_r($person); 

Объем должен быть « https://www.googleapis.com/auth/plus.login » (я тестировал только с областью «профиля», потому что у меня нет профиля Google Plus).

Чтобы получить каналы YouTube, вам нужно добавить область « https://www.googleapis.com/auth/youtube » и использовать метод списка каналов # с параметром «мой», установленным в true. Класс в PHP lib – это «Google_Service_YouTube».

Я ударил аналогичную проблему и решил ее с помощью версии 1.1.4 google-api-php-client

Предполагая, что следующий код используется для перенаправления пользователя на страницу аутентификации Google:

  $client = new Google_Client(); $client->setAuthConfigFile('/path/to/config/file/here'); $client->setRedirectUri('https://redirect/url/here'); $client->setAccessType('offline'); //optional $client->setScopes(['profile']); //or email $auth_url = $client->createAuthUrl(); header('Location: ' . filter_var($auth_url, FILTER_SANITIZE_URL)); exit(); 

Предполагая, что действительный код аутентификации возвращается в redirect_url , следующее генерирует токен из кода аутентификации, а также предоставляет базовую информацию профиля:

  //assuming a successful authentication code is returned $authentication_code = 'code-returned-by-google'; $client = new Google_Client(); //.... configure $client object $client->authenticate($authentication_code); $token_data = $client->getAccessToken(); //get user email address $google_oauth =new Google_Service_Oauth2($client); $google_account_email = $google_oauth->userinfo->get()->email; //$google_ouath->userinfo->get()->familyName; //$google_ouath->userinfo->get()->givenName; //$google_ouath->userinfo->get()->name; 

Однако местоположение не возвращается. В новых учетных записях YouTube нет пользовательских имен пользователей YouTube