当我们的最终用户在我们的网站上执行某些操作时,我们希望使用Google Doc API生成文档(在我们自己的商家帐户中).
问题是我们已尝试实施OAuth 2.0协议,如v3.0协议文档中所述.apiClient :: authentication方法执行重定向.这是一个主要问题,因为我们的用户不知道对我们自己的商业帐户的访问....我们也不想让他们访问;)
(换句话说,我们不是创建一个允许我们的用户编辑他们自己的数据的应用程序,而是与我们的数据交互,比如数据库.)
我已经读到OAuth 2.0的目的是避免我们管理用户的凭据.我个人对此概念很满意,但在我们的情况下,我们不希望在用户的Google帐户中进行身份验证...
那么,在没有最终用户的任何交互的情况下获得有效身份验证的最佳方法是什么?
我正在运行以下PHP代码,使用此处的客户端库:https://code.google.com/p/google-api-php-client/.我没有得到任何这个代码的错误,但是当我调用时getAccessToken(),它返回null.
我允许在个人日历上访问此服务帐户,并通过API控制台授予对项目的完全访问权限.
有任何想法吗?
require_once 'google-api-php-client/src/Google_Client.php';
const CLIENT_ID = 'blahblahblah';
const SERVICE_ACCOUNT_NAME = 'blahblahblah@developer.gserviceaccount.com';
const KEY_FILE = 'path/to/privatekey.p12';
$google_client = new Google_Client(); // created only to initialized static dependencies
$client = new Google_OAuth2(); // you really just need Google_OAuth2
$key = file_get_contents(KEY_FILE);
$client->setAssertionCredentials(
new Google_AssertionCredentials(
SERVICE_ACCOUNT_NAME,
array('https://www.googleapis.com/auth/calendar'),
$key
)
);
var_dump($client->getAccessToken());
Run Code Online (Sandbox Code Playgroud)