Google Apps API -PHP:刷新令牌具有意想不到的逃生符号



挣扎了一天之后,为什么失败了:

client->refresh($refresh_token);    

(500误),我发现刷新令牌有一个前向斜线:

"refresh_token":"1/QnN3mTn_HPCaRwfpiCl11L0cT9u6z9ELb5URT4D_d6M",

卸下后斜线已解决了问题。这是PHP或Google Apps API的问题?

上述刷新令牌是从我的php脚本中返回的:

echo $client->getAccessToken();

似乎是您的代码或库代码决定在脚本执行期间的某个时候逃脱令牌(可能是通过addslashes())。这不是PHP本身的问题,而是实现问题。

更新:看起来图书馆在结果上调用json_encode(),默认情况下将逃脱斜线。根据另一个答案(为什么JSON_ENCODE添加了后挡?),这是为了避免在HTML中嵌入JSON时的问题。

现在,上述答案还提到" /"one_answers"/"应该被JSON Parsers视为等效,因此不幸的是,我不确定为什么Google Apps决定在这种情况下决定为500点打您。

因此,总而言之,您可以说
a)"这是PHP的json_decode()设计方式的问题。默认情况下,它不应返回逃脱的斜线。"

b)"这是Google Apps API服务的问题。它应该在JSON数据中对待" /"one_answers"/"。

c)"这是php的Google Apps API库的问题。鉴于我正在发送refresh()相同的,getRefreshToken()返回的不变数据,因此应该在数据上执行必要的突变,以使其适合于该数据API调用。"

不幸的是,这进入了开局的领域,所以我将留下它。

最新更新