Google API OAuth 2.0 CURL返回“缺少必需参数:response_type”

时间:2015-05-03 17:42:20

标签: php curl

我关注此topic。我的目的我想登录谷歌与php和curl批准访问应用程序获取authorization和登录后批准。

我想创建用于向博客添加新帖子的脚本。

这是我的代码:

Error: invalid_request
Required parameter is missing: response_type

从此代码我收到错误消息。

def parentIdList = [0,1,2,3,2]
def idList = [1,2,3,4,5]

tree = [parentIdList, idList].transpose().groupBy{it[0]}.collectEntries{ [it.key, it.value*.get(1)] }

def childs(l) {
    l.collect{ tree.get(it) }.findAll().flatten().toSet()
}

def descendants(descendentList) {
    def newresults = childs(descendentList)
    def results = [].toSet() + descendentList
    while (newresults.size()) {
        results.addAll(newresults)
        newresults = childs(newresults) - results
    }
    return results
}

assert descendants([2]) == [2,3,4,5].toSet()
assert descendants([2,1]) == [1,2,3,4,5].toSet()
assert descendants([3]) == [3,4].toSet()

当我看到请求网址时。它有参数" response_type"。

我该怎么办?

对不起。我的英语不好。

1 个答案:

答案 0 :(得分:1)

你把参数放在错误的地方。

curl_setopt($ch, CURLOPT_URL,$request_to);

应该是:

curl_setopt($ch, CURLOPT_URL,$url);

您似乎在这里意外删除了一些选项:

curl_setopt($ch, CURLOPT_URL, 
  $request_to);
$data = curl_exec($ch);

更新

我没有得到第二个请求,第一个看起来很乱。

看起来你复制并粘贴了一堆无意义的代码。

params毫无意义。

$params = array(
    "response_type" => "code",
    "client_id" => "myclient_id",
    "redirect_uri" => "redirect_uri from setting",
    "scope" => "https://www.googleapis.com/auth/blogger");

这是我为清除第一个请求的curl选项所能做的最好的事情:

$request_to = http_build_query($params);

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $request_to);
curl_setopt($ch, CURLOPT_POST, true);

curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie/blogger.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie/blogger.txt');  
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$data = curl_exec($ch);