Tôi đang chạy mã PHP sau, sử dụng thư viện máy khách được tìm thấy tại đây: https://code.google.com/p/google-api-php-client/. Tôi không nhận được bất kỳ lỗi nào cho bất kỳ mã nào trong số này, nhưng khi tôi gọi getAccessToken()
, nó trả về giá trị rỗng.Sử dụng Tài khoản dịch vụ, getAccessToken() trả về null
Tôi đã cho phép truy cập vào tài khoản dịch vụ này trên lịch cá nhân của mình và đã cấp quyền truy cập đầy đủ vào dự án thông qua Bảng điều khiển API.
Bất kỳ ý tưởng nào?
require_once 'google-api-php-client/src/Google_Client.php';
const CLIENT_ID = 'blahblahblah';
const SERVICE_ACCOUNT_NAME = '[email protected]';
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());
Bạn cũng không chắc chắn. Tôi đang sử dụng mã của bạn với tín dụng tại https://gist.github.com/fulldecent/6728257 và FYI dòng setScopes là không cần thiết –
'' getAccessToken() '' trả về mã thông báo truy cập hiện tại, không tồn tại cho đến khi bạn gọi '' refreshTokenWithAssertion() '' (để khởi tạo nó) hoặc '' setAccessToken() '' (nếu bạn đã khôi phục mã thông báo truy cập trước đó bạn muốn sử dụng). – tiho