Регистрация в Google Classroom Pub / Sub возвращает ошибку аутентификации 403

Я разрабатываю приложение php с помощью Google Classroom и продолжаю получать «код»: 403, «сообщение»: «Запрос имеет недостаточные области проверки подлинности». ошибка.

Вот что я сделал до сих пор, любая помощь будет колоссальной!

  • Я установил для своего приложения разрешения oauth для использования auth / classroom.push-notifications

  • Я установил [email protected] для роли Pub / Sub Publisher

  • Я создал тему Pub / Sub

Вот код, который я использую:

$google_course_id = '123456';
$topic_name       = 'projects/my-app-name/topics/TopicName';
$feed_type        = 'COURSE_WORK_CHANGES';

$user = User::find(2); // User who has authorized via OAuth and accepted all permissions

$client = new Google_Client();
$client->setAccessToken($user->get_google_social_token());
$classroom = new Google_Service_Classroom($client);
$pub_sub = new Google_Service_Classroom_CloudPubsubTopic();
$pub_sub->setTopicName($topic_name);

$work_changes_info = new Google_Service_Classroom_CourseWorkChangesInfo();
$work_changes_info->setCourseId($google_course_id);

$feed = new Google_Service_Classroom_Feed();
$feed->setCourseWorkChangesInfo($work_changes_info);
$feed->setFeedType($feed_type);

$registration = new Google_Service_Classroom_Registration();
$registration->setCloudPubsubTopic($pub_sub);
$registration->setFeed($feed);

$classroom->registrations->create($registration);

К сожалению, я все время получаю ошибку 403.

Любая помощь в определении того, что мне не хватает, будет принята с благодарностью!


person ShawnyV    schedule 11.06.2019    source источник
comment
Не могли ли вы столкнуться с одной из проблем типа "PERMISSION_DENIED"? developers.google. ru / classroom / reference / rest / v1 / registrations /   -  person Qiqi Wu    schedule 12.06.2019
comment
Может быть, но в этом случае я не думаю, что получу ошибку «Недостаточные области проверки подлинности».   -  person ShawnyV    schedule 12.06.2019


Ответы (1)


Я идиот. Хотя я не забыл добавить область push-уведомлений в консоль разработчика Google, я забыл добавить их в код связывания Oauth. Добавление его внизу, похоже, устранило проблему!

return Socialite::driver('google')
            ->scopes(['https://www.googleapis.com/auth/classroom.courses.readonly',
                'https://www.googleapis.com/auth/classroom.rosters.readonly',
                'https://www.googleapis.com/auth/classroom.coursework.students.readonly',
                'https://www.googleapis.com/auth/classroom.guardianlinks.students.readonly',
                'https://www.googleapis.com/auth/classroom.profile.emails',
                'https://www.googleapis.com/auth/drive.readonly',
                'https://www.googleapis.com/auth/classroom.push-notifications',
            ])
            ->with(['access_type' => 'offline', 'prompt' => 'consent select_account'])
            ->redirect();
person ShawnyV    schedule 12.06.2019