PHP Google Oauth API未设置令牌
我在使用谷歌API时遇到了麻烦,但我对使用他们的API也是全新的,所以我需要一些帮助。从我收集的信息来看,$client->getAccessToken没有正确设置。有人能帮我弄清楚为什么gradebook.php中不断出现错误消息吗?为什么代币不被接受 Gradebook.php:PHP Google Oauth API未设置令牌,php,google-api,google-api-php-client,Php,Google Api,Google Api Php Client,我在使用谷歌API时遇到了麻烦,但我对使用他们的API也是全新的,所以我需要一些帮助。从我收集的信息来看,$client->getAccessToken没有正确设置。有人能帮我弄清楚为什么gradebook.php中不断出现错误消息吗?为什么代币不被接受 Gradebook.php: <?php session_start(); require_once 'oauth.php'; if ($client->getAccessToken()) { //Now have of
<?php
session_start();
require_once 'oauth.php';
if ($client->getAccessToken()) {
//Now have offline access of the user
$_SESSION['token'] = $client->getAccessToken();
//User token google drive call:
$service = new Google_Service_Classroom($client);
$courses = $service->courses->listCourses(['teacherId' => 'me']);
foreach ($courses as $key => $course) {
// var_dump($course->id);
$courseWorks = $service->courses_courseWork->listCoursesCourseWork($course['id']);
foreach ($courseWorks as $k => $courseWork) {
// print_r($courseWork);
// var_dump($courseWork->id);
$studentSubmissions = $service->courses_courseWork_studentSubmissions->listCoursesCourseWorkStudentSubmissions($course->id, $courseWork->id);
// print_r($studentSubmissions);
foreach ($studentSubmissions as $i => $studentSubmission) {
$student = $service->courses_students->get($course->id, $studentSubmission->userId);
$emailAddress = $student->getProfile()->emailAddress;
$emailId = explode('@', $emailAddress)[0];
var_dump($emailId);
var_dump($course->id);
var_dump($courseWork->id);
var_dump($studentSubmission->assignedGrade);
}
}
}
}
else {echo "ERROR DETECTED!!";}
在尝试访问资源之前,需要先设置访问令牌。我已调整了您的代码以设置令牌
<?php
session_start();
require_once '../Internal/oauth.google.php';
$client->setAccessToken($_SESSION["token"]); //set the access token is what you missed
/*$client->getAccessToken() should return a none NULL value if set properly, something we have added above*/
if ($client->getAccessToken() !==NULL) {
//Now have offline access of the user
$_SESSION['token'] = $client->getAccessToken();
//User token google drive call:
$service = new Google_Service_Classroom($client);
$courses = $service->courses->listCourses(['teacherId' => 'me']);
foreach ($courses as $key => $course) {
print_r($course);
$courseWorks = $service->courses_courseWork->listCoursesCourseWork($course['id']);
foreach ($courseWorks as $k => $courseWork) {
// print_r($courseWork);
// var_dump($courseWork->id);
$studentSubmissions = $service->courses_courseWork_studentSubmissions->listCoursesCourseWorkStudentSubmissions($course->id, $courseWork->id);
// print_r($studentSubmissions);
foreach ($studentSubmissions as $i => $studentSubmission) {
$student = $service->courses_students->get($course->id, $studentSubmission->userId);
$emailAddress = $student->getProfile()->emailAddress;
$emailId = explode('@', $emailAddress)[0];
var_dump($emailId);
var_dump($course->id);
var_dump($courseWork->id);
var_dump($studentSubmission->assignedGrade);
}
}
}
}
else {header('Location: ../index.php'); exit();}
<?php
session_start();
require_once '../Internal/oauth.google.php';
$client->setAccessToken($_SESSION["token"]); //set the access token is what you missed
/*$client->getAccessToken() should return a none NULL value if set properly, something we have added above*/
if ($client->getAccessToken() !==NULL) {
//Now have offline access of the user
$_SESSION['token'] = $client->getAccessToken();
//User token google drive call:
$service = new Google_Service_Classroom($client);
$courses = $service->courses->listCourses(['teacherId' => 'me']);
foreach ($courses as $key => $course) {
print_r($course);
$courseWorks = $service->courses_courseWork->listCoursesCourseWork($course['id']);
foreach ($courseWorks as $k => $courseWork) {
// print_r($courseWork);
// var_dump($courseWork->id);
$studentSubmissions = $service->courses_courseWork_studentSubmissions->listCoursesCourseWorkStudentSubmissions($course->id, $courseWork->id);
// print_r($studentSubmissions);
foreach ($studentSubmissions as $i => $studentSubmission) {
$student = $service->courses_students->get($course->id, $studentSubmission->userId);
$emailAddress = $student->getProfile()->emailAddress;
$emailId = explode('@', $emailAddress)[0];
var_dump($emailId);
var_dump($course->id);
var_dump($courseWork->id);
var_dump($studentSubmission->assignedGrade);
}
}
}
}
else {header('Location: ../index.php'); exit();}