marketing-raiseup
marketing-raiseup

WordPress外掛串接Google Classroom API

若尚未安裝Composer請先參閱此篇教學

[Windows系統]如何在WordPress外掛開發內使用Composer

安裝完google套件後我們就來正式撰寫範例,當然在那之前你得先建立一個google專案且建立一組OAuth 2.0 用戶端 ID,

建立完成後下載該OAuth的json檔並放到外掛下的資料夾內(可自訂位置)

程式教學開始:

首先載入composer套件並啟用session,待會會用到


session_start();
require_once OnlineClass_DIR.'/vendor/autoload.php';

建立Google Client物件


$client = new Google\Client();
$client->setAuthConfig(OnlineClass_DIR.'/tools/classroom/credentials.json');

//我們剛下載的OAuth的json檔位置

$client->addScope(Google_Service_Classroom::CLASSROOM_COURSES_READONLY);
$client->addScope(Google_Service_Classroom::CLASSROOM_PROFILE_EMAILS);
$client->addScope(Google_Service_Classroom::CLASSROOM_PROFILE_PHOTOS);
$client->addScope(Google_Service_Classroom::CLASSROOM_ROSTERS_READONLY);

//使用範例功能所需要Google提供的權限範圍

接下來就是防刷新的部分,在第一次取得授權後,我們可以將認證資訊儲存在Session或Cookie中,在認證未過期前使用,可避免使用者每次存取該頁面都需要重新授權


if(isset($_SESSION["google_token"])){
$client->setAccessToken($_SESSION["google_token"]);

//如果已經有token存在,則使用token做存取
}
if ($client->isAccessTokenExpired()) {

//如果token過期
if (isset($_GET['code'])) {
$code=$_GET['code'];
$token = $client->fetchAccessTokenWithAuthCode($code);
$_SESSION["google_token"]=$token;

//重新刷新token並存進session
}
else{
$redirect_uri = admin_url().'admin.php?page=online-class_main';
$client->setRedirectUri($redirect_uri);
$authUrl = $client->createAuthUrl();
wp_redirect($authUrl);

//導向到google授權頁面獲取授權後返回
}
}

獲取授權後,就可以開始使用各種測試範例,這部分google的文件其實沒有寫得很清楚如何使用,例如service文件內完全沒提到要怎麼建立,在這邊幫大家整理一下


$service = new Google\Service\Classroom($client);

//透過剛剛授權的client物件,獲取相對應的服務
$pageToken = NULL;
$courses = array();

do {
$params = array(
'pageSize' => 100,
'pageToken' => $pageToken
);
$response = $service->courses->listCourses($params);

//使用列出課程的範例
$courses = array_merge($courses, $response->courses);
$pageToken = $response->nextPageToken;
} while (!empty($pageToken));

if (count($courses) == 0) {
print "No courses found.\n";
}
else {
$html = "";
print "Courses:\n";
foreach ($courses as $course) {
printf("%s (%s)\n", $course->name, $course->id);
}
}

若能成功看到列出的課程即為成功

原文連結展躍網頁設計 - WordPress網頁設計公司

CC BY-NC-ND 2.0 版权声明

喜欢我的文章吗?
别忘了给点支持与赞赏,让我知道创作的路上有你陪伴。

加载中…

发布评论