我正在使用Google Oauth 2,最后能够获得访问令牌。 Google只是在JSON对象中返回了访问令牌。输出打印在我的浏览器上。由于我之前从未接触过JSON或任何其他API,因此我不知道如何捕获该JSON对象,以便存储访问令牌。
示例输出(遮盖实际数据)
{
"access_token":"1/6GKFqrOr6000000004k10qgr000000GiUiRNbLnc",
"token_type":"Bearer",
"expires_in":3600,
"refresh_token": "1/Vx34LfPISDuX000000Kq_SJWIgf42FVs"
}
我尝试了简单的$ token = $ _POST ['access_token'];这没用。 json_decode也没用。我很确定我不是在这里做的。有人能告诉我如何与JSON对象进行交互吗?
编辑:
我想我最初的问题更为简陋,因为我是API编程的新手。我想知道的是如何将JSON对象的浏览器响应封装到变量中,这样我的PHP脚本就可以动态解码响应。目前,浏览器刚刚回复了我上面发布的JSON对象的内容,但我不知道对象名称或变量名称,如$ object = {}。有没有办法找出对象名称或将响应动态放入对象或数组的方法?
答案 0 :(得分:2)
{
"access_token":"1/6GKFqrOr6000000004k10qgr000000GiUiRNbLnc",
"token_type":"Bearer",
"expires_in":3600,
"refresh_token": "1/Vx34LfPISDuX000000Kq_SJWIgf42FVs"
}
在Json对象中放置完整的响应:然后JSONObject jObject = new JSONObject(response);
现在获取您的访问令牌:String value = jObject.getString(“access_token”); http://developer.android.com/reference/org/json/JSONObject.html
http://www.androidcompetencycenter.com/2009/10/json-parsing-in-android/
答案 1 :(得分:1)
你试过json_decode($ output,true)。如果给出第二个参数,它将返回一个关联数组。
答案 2 :(得分:0)
我刚刚运行它,它就像一个魅力:
$f = <<<HER
{
"access_token":"1/6GKFqrOr6000000004k10qgr000000GiUiRNbLnc",
"token_type":"Bearer",
"expires_in":3600,
"refresh_token": "1/Vx34LfPISDuX000000Kq_SJWIgf42FVs"
}
HER;
$c = json_decode($f);
echo $c->access_token;
您是否尝试访问该属性,就像它是一个数组?在这种情况下$c['access_token']
将失败 - $ c不是数组,它是一个对象。这就是我刚用$c->access_token;
输出结果的原因。如果您愿意,可以将TRUE作为第二个参数传递给json_decode,但事实是,我不知道这是否真的有必要。