簡體   English   中英

使用Google Calendar Api V3和PHP時出現問題

[英]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和客戶端密鑰。

編輯src / config.php文件以放入您的開發人員API信息。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM