Tôi đang cố gắng sử dụng API dữ liệu YouTube của Google với PHP dựa trên tài liệu của Google tại đây: https://developers.google.com/youtube/2.0/developers_guide_protocol_oauth2#OAuth2_Refreshing_a_Token. Vấn đề của tôi xuất hiện khi xác thực với OAuth. Tôi đang sử dụng URL ủy quyền sau giống hệt với tài liệu nói để sử dụng ngoại trừ khóa chuyển hướng và khóa ứng dụng của tôi, rõ ràng.Mã thông báo làm mới API Google API không được gửi
$this->authorizationUrl = 'https://accounts.google.com/o/oauth2/auth?';
$this->authorizationUrl .= 'client_id=' . $this->applicationKey . '&';
$this->authorizationUrl .= 'redirect_uri=' . $this->redirect_uri . '/account.php?action=youtube_oauth&';
$this->authorizationUrl .= 'scope=https://gdata.youtube.com&';
$this->authorizationUrl .= 'response_type=code&';
$this->authorizationUrl .= 'access_type=offline';
Sau đó, khi các tài liệu nói đến, tôi cuộn tròn như sau:
$curl_options = Array(
CURLOPT_POSTFIELDS => Array(
'code' => $code,
'client_id' => $this->applicationKey,
'client_secret' => $this->applicationSecret,
'redirect_uri' => $this->redirect_uri . '/account.php?action=youtube_oauth',
'grant_type' => 'authorization_code'
),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_URL => 'https://accounts.google.com/o/oauth2/token'
);
Tuy nhiên, phản ứng của tôi không bao giờ mang lại cho tôi một refresh_token như tài liệu của họ nói rằng họ cần. Tôi chỉ nhận được ba mục phản hồi khác.
Một số câu hỏi như thế này: Get refresh token google api đã nói sử dụng approval_prompt = force, nhưng điều đó không hoạt động hoặc hoàn toàn thất bại với mục đích có access_type = offline.
Bất kỳ ý tưởng nào về lý do tại sao tôi nhận được phản hồi hợp lệ với 3 trong số 4 mục phản hồi?
Cảm ơn bạn đã giải pháp! – WHITECOLOR
Ai đó chấp nhận điều này làm câu trả lời! –
Vì lợi ích của bất cứ ai khác bị lẫn lộn của chính tôi, một khi bạn nhận được một 'mã thông báo làm mới' bạn không cần phải _refresh_ nó cũng như bạn có thể sử dụng cùng một lần lặp đi lặp lại. Thời gian duy nhất bạn nên cần một cái mới là nếu bạn mất nó hoặc người dùng thu hồi quyền truy cập của bạn. – jeteon