PHP 用に独自の Google Plus ライブラリを作成しましたが、これまでのところ、アクセス トークンの expire_time を延長できないという 1 つの問題で正常に動作します。ユーザーが更新するために再度ログインすることを期待できないさらなる処理にそれを使用する必要があります。
私がやりたいことは、G+ ページのフォロー数を取得することです。これを言うのは、それを取得する別の方法があれば、API は必要ないからです。
そうでない場合は、これまでに得たものを見てください。
これは私のログイン URL ジェネレーターです。
public function generateLoginUrl()
{
$arr = array(
"scope" => "https://www.googleapis.com/auth/plus.".implode(".", Config::$scopes)."",
"state" => "generate_a_unique_state_value",
"redirect_uri" => Config::$redirect_uri,
"response_type" => "code",
"client_id" => Config::$client_id,
"access_type" => "offline"
);
$oauth_url = "https://accounts.google.com/o/oauth2/auth?".http_build_query($arr);
return $oauth_url;
}
アクセストークンジェネレーターは次のとおりです。
public function getAccessToken()
{
$post = array(
"code" => $_SESSION["code"],
"grant_type" => "authorization_code",
"redirect_uri" => Config::$redirect_uri,
"client_id" => Config::$client_id,
"client_secret" => Config::$client_secret
);
$result = $this->createRequest("https://accounts.google.com/o/oauth2/token", $post);
$result = json_decode($result);
$_SESSION["instagram_token"] = $result->access_token;
unset($_SESSION["code"]);
}
getAccessToken から得たものは、次のような例です。
object(stdClass)[2]
public 'access_token' => string 'ya29.VAHbw-eZNhhrvJC8JLGuTwAuRyBfqEf9lA_lPC5gcBMvYINsz9nUJyw5-nEqHyA' (length=83)
public 'token_type' => string 'Bearer' (length=6)
public 'expires_in' => int 3599
public 'id_token' => string 'eyJhbGciOiJSUzI1NiIsImtpZCI6IjBlMDYzZGUwYzlmNjY4NmRlYjY2ZTc0NTRiMzIwMWMxMTE0ZWJhNmUifQ.eyJpc3MiOiJhY2NvdW50cy5nb29nbGUuY29tIiwic3ViIjoiMTA0OTE3NDIxMDA2NTYyNjIxODA5IiwiYXpwIjoiNzc2OTUiLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiYXVkIjoiNzc2OTU1MjgyODA3LXZvOWk4b2U5NXUyYzY5MW9scnFoaG51N3I5bjE3NjRjLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwiaWF0IjoxN'... (length=719)
上記のように、取得した access_token は 1 時間で期限切れになりますが、定期的にページ フォロワー数または「丸で囲まれた」数をチェックする必要があるため、無限アクセス トークンまたは拡張アクセス トークンが必要です。