我有一個應用程序使用類似的情況,但使用谷歌分析,所以我所做的是設立一個谷歌服務帳戶,然後下載並使用php auth library設置處理auth的端點,並向我提供我從應用請求的數據。
相關代碼是s omething這樣的:
谷歌,data.php
<?php
require_once '/path-to/google/src/Google/autoload.php';
$veiwId = $_GET['viewid']; // Sent from the app
$client_email = 'YOUR_SERVICE_ACCOUNT_EMAIL_HERE'; //looks something like - [email protected]
$private_key = file_get_contents('/path-to/APIProject-c5bfsdf45d54d.p12'); // downloaded from Google dev console
// Define the service you want to use (Calendar, Analytics, etc.)
$scopes = array(Google_Service_Analytics::ANALYTICS_READONLY);
$credentials = new Google_Auth_AssertionCredentials(
$client_email,
$scopes,
$private_key
);
$client = new Google_Client();
$client->setAssertionCredentials($credentials);
// Grab token if it's set
if (isset($_SESSION['service_token'])) {
$client->setAccessToken($_SESSION['service_token']);
}
// Refresh if expired
if ($client->getAuth()->isAccessTokenExpired()) {
$client->getAuth()->refreshTokenWithAssertion();
}
// Pin to Session
$_SESSION['service_token'] = $client->getAccessToken();
// Here is where you will start using the service, such as Google Calendar, etc.
$service = new Google_Service_Analytics($client);
// Adding Dimensions
$params = array('dimensions' => 'ga:medium');
// requesting the data (methods will depend on the service)
$data = $service->data_ga->get(
// params from get request
// request logic, etc.
);
// Return to client as JSON
echo json_encode($data);
?>
你顯然不需要,因爲有很多others available,但是概念是相同的使用PHP庫。我的用例很簡單,所以PHP是最重要的。
那個設定我能夠從我的角度應用程序發送一個簡單的GET請求的數據:
app.factory('DataLoader', function($http, $log) {
return {
getGoogleData: function(toDate, fromDate, viewId) {
// Pass in some dates and a profile id
return $http.get('path-to/google-data.php?todate='+toDate+'&fromdate='+fromDate+'&viewid='+viewId);
}
}
})
希望這可以幫助您瞭解如何讓你的應用程序與谷歌API的交互你的最終用戶與api交互。
聽起來像你需要一個[服務帳戶](https://developers.google.com/identity/protocols/OAuth2ServiceAccount) - 該帳戶將屬於應用程序,而不是最終用戶 - 所以你會配置你的應用程序只與酒店帳戶交互 – Und3rTow
所以我需要一個服務器端組件(例如一個node.js + express.JS腳本)運行,對吧?如此簡單的網絡空間不足以發佈應用程序,但我需要某種Web服務器運行模式應用程序,對吧? – MarcoS
不,您可以構建localy並部署到普通的Web服務器,但它將取決於您使用何種語言訪問服務帳戶 – Und3rTow