【问题标题】:Return a JSON object in the body of a HTTPS response在 HTTPS 响应的正文中返回 JSON 对象
【发布时间】:2017-07-11 23:02:33
【问题描述】:

我有一个 OAUTH 2.0 服务器,并且我已经使用 PHP

成功地将它实现到最后一级

参考链接:https://developers.google.com/actions/identity/oauth2-code-flow

不过,我现在正处于最后一步

---> 在 HTTPS 响应的正文中返回以下 JSON 对象

 {
 token_type: "bearer",
 access_token: "ACCESS_TOKEN",
 refresh_token: "REFRESH_TOKEN",
 expires_in: SECONDS_TO_EXPIRATION
 }

我做了以下事情

$json = array(
'token_type:' => "bearer",
'access_token:' => $ACCESS_TOKEN,
'refresh_token:' => $REFRESH_TOKEN,
'expires_in:' => '3600'

);
  $jsonstring = json_encode($json);
  echo $jsonstring;
  die(); 

其中$ACCESS_TOKEN$REFRESH_TOKEN 以及包含必要信息的两个变量。
我的问题是如何在 HTTPS 响应的正文中返回“JSON 对象:”?

如果有人能帮我解决这个问题,那将意义重大
在此先感谢!
请访问这个网站,然后看看你可能明白我在做什么:)
https://developers.google.com/actions/identity/oauth2-code-flow

【问题讨论】:

  • 您在测试时是否遇到错误?是什么让你相信自己有问题?请使用有关您所看到内容的任何其他信息更新您的问题。
  • 它说我需要在 HTTPS 响应的正文中返回一个 JSON 对象。我很确定该怎么做:/
  • 我创建了一个 json 文件,但我如何在 HTTPS 响应的正文中返回它?
  • 来自文档。您是否测试过您的代码以查看它的作用?
  • 是的,当我从头开始执行此操作时,这意味着我从 url 传递了身份验证代码,它成功打印了访问令牌和刷新令牌,但是当我从谷歌 aouth play ground 执行此操作时,我得到一个错误PHP 注意:未定义变量:客户端在

标签: php json oauth-2.0 google-oauth actions-on-google


【解决方案1】:

您的大部分操作似乎都是正确的。将 JSON 作为正文发送需要两个步骤。

首先,您必须设置 content-type 标头以指示正文是 JSON。您必须在输出任何其他数据(包括空行)之前执行此操作。在页面上的 PHP 标头之后使用它可能是一种很好的做法,以确保没有包含其他内容会生成它。此标头的完成方式类似于

<?php
header("Content-type:application/json");

您的其余代码看起来是正确的。发送“JSON 对象”意味着发送特定格式的数据文本表示。格式化是通过 json_encode() 完成的。

$json = array(
  'token_type:' => "bearer",
  'access_token:' => $ACCESS_TOKEN,
  'refresh_token:' => $REFRESH_TOKEN,
  'expires_in:' => '3600'
);
$jsonstring = json_encode($json);
echo $jsonstring;

【讨论】:

  • 添加标题后就像一个魅力!谢谢
猜你喜欢
  • 2017-04-05
  • 2019-06-30
  • 1970-01-01
  • 1970-01-01
  • 2016-12-07
  • 2019-10-28
  • 2021-01-16
  • 2017-12-04
  • 2014-12-18
相关资源
最近更新 更多