Запрос имеет недостаточную аутентификацию - PullRequest
3 голосов
/ 13 июня 2019

Я настраиваю API управления Android с помощью PHP API клиента Google, но я решил, что моя конфигурация аутентификации, которую я предоставил клиенту, не влияет на отправку запроса.

Я проверил, существует ли файл учетных данных и обрабатываются ли синтаксические ошибки внутри файла. Я перешел по ссылке на сообщение об ошибке. Я искал в Интернете несколько раз, обратился к документации и документу php внутри библиотеки, но не смог понять.

$client = new \Google_Client();
$client->setApplicationName('SecretName');
$client->setAuthConfig(x::getRootDir() . '/modules/package-androidmanagement/credentials2.json');
$client->addScope(Google_Service_AndroidManagement::ANDROIDMANAGEMENT);
$am = new \Google_Service_AndroidManagement($client);

try {
 $signupUrl = $am->signupUrls->create(['projectId' => $this->projectId, 'callbackUrl' => x::getDomain()]);
} catch (Exception $exception) {
 echo $exception->getMessage();
}

Ожидается: объект signupUrl Факт: в запросе отсутствуют необходимые учетные данные для аутентификации. Ожидаемый токен доступа OAuth 2, файл cookie для входа или другие действительные учетные данные для аутентификации. Смотри https://developers.google.com/identity/sign-in/web/devconsole-project.

1 Ответ

1 голос
/ 13 июня 2019

Прежде чем вы сможете сгенерировать какие-либо URL-адреса регистрации организации (или выполнить какие-либо вызовы API), вам необходимо пройти аутентификацию.

Это можно сделать, установив URL-адрес перенаправления и направив пользователя на URL-адрес регистрации.

$client->setRedirectUri('https://example.com/register');
$authUrl = $client->createAuthUrl();

Для этого требуется полная настройка потока oauth. Это означает, что ваш экран подтверждения oauth был проверен Google (может занять до нескольких недель), и вы настроили различные разрешенные домены для URL перенаправления.

Если вы все еще находитесь на этапе разработки, вы можете воспользоваться окном согласия oauth, предоставленным блокнотом быстрого запуска от Google :

# This is a public OAuth config, you can use it to run this guide but please use
# different credentials when building your own solution.
CLIENT_CONFIG = {
    'installed': {
        'client_id':'882252295571-uvkkfelq073vq73bbq9cmr0rn8bt80ee.apps.googleusercontent.com',
        'client_secret': 'S2QcoBe0jxNLUoqnpeksCLxI',
        'auth_uri':'https://accounts.google.com/o/oauth2/auth',
        'token_uri':'https://accounts.google.com/o/oauth2/token'
    }
}
SCOPES = ['https://www.googleapis.com/auth/androidmanagement']

Используйте это для замены данных в вашей конфигурации oauth json.

Не устанавливая URI перенаправления, он должен предоставить вам код, который затем можно будет ввести вручную.

...