gpt4 book ai didi

php - 谷歌oauth认证

转载 作者:行者123 更新时间:2023-12-04 05:54:54 24 4
gpt4 key购买 nike

我试图通过授权然后从 google plus 获取数据,但数据变量一直显示“暂时移动”的值我做错了什么?

<?php
session_start();

$client_id = '';
$client_secret = '';
$api_key = '';
$redirect_uri = 'http://localhost:8888/oauth';
$scope = "https://www.googleapis.com/auth/plus.me";

if (!isset($_REQUEST['code']))
{
$login_path = "https://accounts.google.com/o/oauth2/auth?";
$login_path .= "redirect_uri=" . $redirect_uri;
$login_path .= "&response_type=code";
$login_path .= "&client_id=" . $client_id;
$login_path .= "&approval_prompt=force";
$login_path .= "&scope=" . $scope;
$login_path .= "&access_type=offline";

echo "<a href='" . $login_path . "'>login</a>";
}

else
{

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://accounts.google.com/o/oauth2/auth");

curl_setopt($ch, CURLOPT_POST, TRUE);

// This option is set to TRUE so that the response
// doesnot get printed and is stored directly in
// the variable
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

$post_params = "code=" . $_REQUEST['code'] . "&";
$post_params = "redirect_uri=" . $redirect_uri . "&";
$post_params .= "client_id=" . $client_id . "&";
$post_params .= "scope=" . $scope . "&";
$post_params .= "client_secret=" . $client_secret . "&";
$post_params .= "grant_type=authorization_code&";
$post_params .= "response_type=code";


curl_setopt($ch, CURLOPT_POSTFIELDS, $post_params);

$data = curl_exec($ch);

curl_close($ch);

//commented this since data was showing empty
//$data = json_decode($data);

print '<pre>';
print $data;
print '</pre>';
}

最佳答案

更新:对于其他有同样问题的人,我想通了。这是我的工作代码。

$client_id = '';
$client_secret = '';
$api_key = '';
$redirect_uri = 'http://localhost:8888/oauth';
$scope = "https://www.googleapis.com/auth/plus.me";
$api_call = "https://www.googleapis.com/plus/v1/people/me?access_token=";

if (!isset($_REQUEST['code']))
{
$login_path = "https://accounts.google.com/o/oauth2/auth?";
$login_path .= "redirect_uri=" . $redirect_uri;
$login_path .= "&response_type=code";
$login_path .= "&client_id=" . $client_id;
$login_path .= "&approval_prompt=force";
$login_path .= "&scope=" . $scope;
$login_path .= "&access_type=offline";

echo "<a href='" . $login_path . "'>login</a>";
}

else
{

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://accounts.google.com/o/oauth2/token");

curl_setopt($ch, CURLOPT_POST, TRUE);

// This option is set to TRUE so that the response
// doesnot get printed and is stored directly in
// the variable
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);


$post_params = "code=" . $_REQUEST['code'] . "&";
$post_params .= "redirect_uri=" . $redirect_uri . "&";
$post_params .= "client_id=" . $client_id . "&";
$post_params .= "scope=" . $scope . "&";
$post_params .= "client_secret=" . $client_secret . "&";
$post_params .= "grant_type=authorization_code&";

curl_setopt($ch, CURLOPT_POSTFIELDS, $post_params);

$data = curl_exec($ch);

curl_close($ch);

$data = json_decode($data);

$access_token = $data->access_token;
$refresh_token = $data->refresh_token;

// end of oauth now call google plus api. not $api_call holds the request uri value
$call = $api_call . $access_token;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $call);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$out = curl_exec($ch);

echo '<pre>';
print_r($out);
echo '</pre>';

}

关于php - 谷歌oauth认证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9629540/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com