文章彙整

Google MyBusiness API 實戰教學(三)-在PHP使用API

By Astral Web 3 months agoNo Comments
首頁  /  網站設計與開發  /  Google MyBusiness API 實戰教學(三)-在PHP使用API

這一篇將會是本系列篇的最後一篇,本篇將帶來我們實際在PHP中如何使用這支API!

相關文章:

Google MyBusiness API 實戰教學(一)-簡單4步驟完成啟用

Google MyBusiness API 實戰教學(二)Postman的測試

 

 

這邊有幾個檔案需要從Google(連結)先下載

Google My Business API客戶端庫包含了Google My Business API的功能,並提供了所有Google API的通用功能,例如HTTP傳輸、錯誤處理、身份驗證、JSON解析以及支援協議緩衝區。

 

這邊下載4.3的php版本,再來如果有用composer來安裝google client套件是比較方便管理的一種方式,也可以直接下載下來

如果是使用composer的話,在composer.json這支檔案直接加上

 

{

  "require": {

      "google/apiclient": "^2.0"

  }

}

 

再來執行composer install就會安裝完成

另外附上這個套件的github也可以自行clone下來使用(連結)

 

接下來本篇將用composer的方式進行介紹

如果沒用任何框架的話必須自行require vendor/autoload.php以及剛剛下載的MyBusiness.php

 

$credentials_f = "client_secrets.json";

$client = new Google_Client();

$client->setApplicationName('Reviews');

$client->setAuthConfig($credentials_f);

$client->setRedirectUri('https://' . $_SERVER['HTTP_HOST'] . '/oauth2callback.php');

$client->setScopes(["https://www.googleapis.com/auth/plus.business.manage"]);

$client->setAccessType('offline');

$client->setApprovalPrompt('force');

$mybusinessService = new Google_Service_Mybusiness($client);

$reviews = $mybusinessService->accounts_locations_reviews;

$locationName = "pass your loaction here";

$reviewsList = $reviews->listAccountsLocationsReviews($locationName, array('pageSize' => 5));

$google_review = $reviewsList->reviews;

 

這邊解釋一下

$credentials_f 這是由第一篇最後一部所下載下來的檔案,這算認證的一部分

$client 把google client的class實現出來使用

後面就是set一些基本的設定值像是redirectUrl、Scope之類的

最後把client的東西在塞進去Google_Service_Mybusiness裡面就會return正確的資訊回來了,

如果沒有就看一下缺少了哪些內容

$locationName可以從第二篇使用postman的地方得知各個location的url該怎麼輸入,例如accounts/00000000000000000001/locations/000000000000000002

在$reviewList裡面有許多東西可以查看,我們可以多使用var_dump出來看看

 

<?php

require_once 'vendor/autoload.php';

require_once 'MyBusiness.php';



session_start();

$client = new Google_Client();

$client->setAuthConfigFile('client_secrets.json');

$client->setRedirectUri('https://' . $_SERVER['HTTP_HOST'] . '/oauth2callback.php');

$client->addScope(["https://www.googleapis.com/auth/plus.business.manage"]);

$client->setAccessType("offline");

$client->setPrompt('consent');



if (! isset($_GET['code'])) {

$auth_url = $client->createAuthUrl();

header('Location: ' . filter_var($auth_url, FILTER_SANITIZE_URL));

} else {

$client->authenticate($_GET['code']);

$_SESSION['access_token'] = $client->getAccessToken();

$_SESSION['refresh_token'] = $client->getRefreshToken();

$f = fopen('googleRefreshToken.txt','w+');

fwrite($f, $client->getRefreshToken());

fclose($f);

}

 

但上述的方式不但每次使用都要登入google帳號並且授權一次,不過我們可以使用refreshToken來跳過這個動作

上面這段是callback的code,第一次可以設定setAccessType來取得refreshToken

 

 $client->setAccessType('offline');

 

這邊設定為offline,我這邊是將refreshToken用文字檔存起來或是可以存在session還是db之類,之後在google client那邊加入一段

$client->refreshToken(file_get_contents('https://' . $_SERVER['HTTP_HOST'] . '/googleRefreshToken.txt'));

 

去讀取我們的refreshToken就可以不必每次都要登入然後授權這麼麻煩了!

 

這篇簡單介紹到這邊,相信看到這裡的讀者一定可以照著上面的步驟成功的查詢出該location的reviews,更多的功能都可以在Google的文件中看到,如果有任何問題,歡迎在底下留言給我們!

 

 

 

延伸閱讀:

Google API 定價的改變,對開發者而言代表了什麼呢?

更多電商營運與架站相關的知識,歡迎訂閱歐斯瑞電子報,以及追蹤我們的Facebook粉絲專頁

 

以上內容由Astralweb 歐斯瑞編寫製作

 000

推薦文章

Category:
  網站設計與開發

留下回應

你的電子郵件地址不會被公開.

取得獨家電子商務祕技

建立更好的策略靈感

跟上全球的網路趨勢

絕佳的電商解決方案

電子商務戰略全指南

每月發送電商戰略指南,只要填寫E-mail即可訂閱!

請到您的信箱確認,即可完成訂閱。