[英]Problems working with Google Calendar Api V3 and PHP
我只是在嘗試制作一個簡單的應用程序(兩年前我已經在api V1中使用Objective-C制作了這個應用程序),它提供了一個屏幕,其中包含事件和描述的時間以及一個按鈕:“在日歷中插入事件”。 顯然,每個用戶都必須使用其Google用戶名和密碼來配置應用程序。 該應用程序使用第一個可用的日歷簡化了某些過程。
我在嘗試使用javascript(此應用將在html5中制作)時遇到無限問題,因此,在查看文檔時,我最終嘗試在php5的服務器上制作一個后端(這可能會更容易... ohohoho)。
因此,我從這里閱讀文檔: https : //developers.google.com/google-apps/calendar/我的工作:1)進入Google Developers Console。 創建了一個項目。
OAuth 2.0
客戶端ID 352xxxyy9.apps.googleusercontent.com
電子郵件地址3527xxxy@developer.gserviceaccount.com
服務帳號
客戶端ID 3523xxxyy419-vpfgdfg9u77s0.apps.googleusercontent.com
電子郵件地址35ssss9-zzzzsnhavna78ea0b9gvn6a9u77s0@developer.gserviceaccount.com
公鑰指紋:ac15ddfxdffrtg5565fgfg545r
2)我在服務器上安裝了PHP的Google API客戶端庫(測試版)。
doc說:
使用適用於PHP的Google API客戶端庫要求您下載PHP源代碼。 將來會提供軟件包。 有關更多詳細信息,請參考項目頁面。
運行以下命令以下載並安裝源:svn blaj blah blah。
我將整個源復制到服務器中。 簡單 :)
然后..
3)現在,您可以使用以下語句導入所需的類:
require_once "../src/apiClient.php";
require_once "../src/contrib/apiCalendarService.php";
好的,我將它們插入我的php腳本中!
4)“配置您的應用”您必須實例化客戶端以向API發出請求。 對Google Calendar API的所有請求均需要授權。
以下代碼演示了如何使用OAuth 2.0為本機應用程序配置授權的服務對象。 有關更多信息,請參見授權請求。
要查找項目的客戶ID和客戶機密,請執行以下操作:
轉到Google Developers Console。 選擇一個項目。 在左側的邊欄中,選擇API和身份驗證。 在顯示的API列表中,確保Google Calendar API狀態設置為ON。 在左側的邊欄中,選擇“憑據”。 找到標有“客戶ID”和“客戶機密”的行。 請注意,可能有沒有客戶端機密的客戶端ID,可與Compute Engine和App Engine一起使用; 在這種情況下,通過選擇創建新客戶端ID創建新的客戶端ID和客戶端密鑰。
global $apiConfig;
$apiConfig = array(
// Site name to show in Google's OAuth authentication screen
'site_name' => 'www.example.org',
// OAuth2 Setting, you can get these keys in Google Developers Console
'oauth2_client_id' => 'YOUR_CLIENT_ID',
'oauth2_client_secret' => 'YOUR_CLIENT_SECRET',
'oauth2_redirect_uri' => 'YOUR_REDIRECT_URL',
// The developer key; you get this from Google Developers Console
'developer_key' => 'YOUR_DEVELOPER_KEY',
...
// Which Authentication, Storage and HTTP IO classes to use.
'authClass' => 'apiOAuth2',
....
// Definition of service specific values like scopes, OAuth token URLs, etc
'services' => array(
'calendar' => array('scope' => 'https://www.googleapis.com/auth/calendar'),
)
);
但是它們和我的鑰匙不同,怎么了?
什么是客戶機密? REDIRECT_URL?
請幫忙。
我認為您需要按以下說明設置服務帳戶訪問權限: https : //code.google.com/p/google-api-php-client/wiki/OAuth2#Service_Accounts
我經過多次嘗試和錯誤,使它無法正常工作,並且緩存中充滿了無法正常工作的令牌。 如果您發現自己仍然無法按照所有步驟訪問日歷,請嘗試更改以下代碼行:
$client->setAssertionCredentials(new Google_AssertionCredentials(SERVICE_ACCOUNT_NAME, array('https://www.googleapis.com/auth/prediction'),$key));
對此:
$client->setAssertionCredentials(new Google_AssertionCredentials(SERVICE_ACCOUNT_NAME, array('https://www.googleapis.com/auth/prediction'),$key, 'notasecret','http://oauth.net/grant_type/jwt/1.0/bearer',false,false));
最后一個false
告訴AssertionCredential類不使用任何緩存。 我做了一次,然后將它設置為true
。
首先前往這里https://console.developers.google.com/project ,這是您配置應用程序的地方...
單擊您的項目,然后在左側,您將看到API和Auth,然后單擊憑據。 您將需要創建OAuth和Public API Access密鑰。
完成后,您需要將其輸入相應的client_id,secret,redirect等。
重定向uri與您的應用程序位於同一頁面,授權后用戶將其發送回該頁面。
我有同樣的問題。 在此頁面上,單擊“創建新的客戶端ID”時,選擇Web應用程序,它也應為您提供客戶端密鑰。
https://console.developers.google.com/project添加項目等。
希望能幫助到你
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.