我只是想制作一个简单的小应用程序(我已经在两年前在带有api V1的Objective-C中制作),它提供了一个包含事件和描述时间的屏幕以及一个按钮:&#34 ;在您的日历中插入事件"。 显然,每个用户都使用他的谷歌用户名和密码配置应用程序。 该应用程序使用第一个可用日历简化了某些过程。
我尝试使用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& AUTH。在显示的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 ??
请帮忙。
答案 0 :(得分:1)
我认为您需要设置服务帐户访问权限,如下所述: 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
。
答案 1 :(得分:0)
首先到这里https://console.developers.google.com/project,这是您配置应用的地方......
点击你的项目,然后在左侧你会看到API&单击“凭据”,然后单击“凭据”。您需要创建OAuth和公共API访问密钥。
完成后,您将把它们输入相应的client_id,secret,redirect等。
重定向uri与您的应用所在页面相同,是用户在授权后发回的页面。
答案 2 :(得分:0)
我遇到了同样的问题。 在此页面上,当您单击“创建新客户端ID”时,选择“Web应用程序”,它也会为您提供客户端密钥。
https://console.developers.google.com/project 添加项目等。
希望有所帮助