401使用PHP客户端发布Google+时刻时未经授权的访问权限

时间:2013-04-02 08:50:48

标签: google-plus google-api-php-client

我正在尝试使用API​​在Google +中发布片刻,创建一个简单示例,但我收到401错误。我正在关注来自https://plus.google.com/+SilvanoLuciani/posts/2kMX9Dzaf8V的Silvano Luciani步骤,为了发布片刻,我已经:

这直接不起作用,在第16行的示例中,要求的是一个 Google_PlusService 类,它不存在,所以我为类 Google_PlusMomentsService更改了它即可。

根据更改,它会发布到类似'加上/ v1moments / people /'的网址,并显示404错误。因此,我修改了 src / contrib / Google_PlusMomentsService.php 中的网址,第73行来自“plus / v1moments / people” => “plus / v1 / people”

之后,它显示它需要 setRequestVisibleActions 才能正常工作,并且我意识到Google客户端没有这种方法,因此我从Google repo中获取最后一个Google_client:{{3} }

好的,现在,它有效,但它显示401错误,我不知道如何关注。

错误是:

  

调用POST https://code.google.com/p/google-api-php-client/source/detail?r=534时出错:(401)在第66行的C:\ wamp \ www \ gPlus \ src \ io \ Google_REST.php中未经授权

XXXXXXXXXX密钥是我在文件中设置的开发人员密钥。看起来POST不包括URL中的操作,但我不确定这是问题还是如何解决它。有谁知道如何解决它?谢谢!

更新

正如Luciano指出的那样,我正在使用一个过时的google-php-client,因此,正如他所说,我已经从SVN repo下载了最后一个代码。但在设置配置文件后,请立即包含Silvano中的moment示例文件,并在Google控制台和配置文件中配置API重定向URL,/ examples文件夹中的示例不起作用。执行Silvano PHP示例时,它会抛出“不可用”错误:

  

Estapáginawebestestádisponible   Es posible quelapáginawebhttps://www.googleapis.com/plus/v1/people/me/moments/vault?key=XXXXXXXXXXXXXXestétempormenteinactiva o que se haya trasladado definitivamente aoturairección。   错误15(net :: ERR_SOCKET_NOT_CONNECTED):错误desconocido。

但是与库中的其他示例相同的错误。时间问题,或库问题?

更新2

是的,这是一个浏览器问题。它仍然出现在Chrome中,但是使用Firefox就像魅力一样,它不再出现401错误,这很好,XD

现在,我有另一个问题,它返回一个数组,但它不会在流中发布任何内容。 Silvano,这是正常的吗?无论如何,非常感谢你的帮助,我的主要问题得到了回答,另外一步是完成流出版,XD!

数组是:

Array ( 
    [kind] => plus#moment 
    [type] => http://schemas.google.com/AddActivity 
    [target] => Array ( 
        [kind] => plus#itemScope 
        [url] => https://developers.google.com/+/plugins/snippet/examples/thing 
    ) 
    [result] => Array ( 
        [kind] => plus#itemScope 
    ) 
    [id] => xxxxxxxxx 
) 

更新3

好的,看起来为了防止垃圾邮件,他们不允许直接发送邮件。有关详细信息,请参阅此问题的答案:

https://accounts.google.com/o/oauth2/auth?response_type=code&redirect_uri=http%3A%2F%2Flocalhost%2FgplusAPI%2Fexamples%2Fmoments%2Findex.php&client_id=xxxxxxxx.apps.googleusercontent.com&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fplus.login&access_type=offline&approval_prompt=force&request_visible_actions=http%3A%2F%2Fschemas.google.com%2FAddActivity+http%3A%2F%2Fschemas.google.com%2FReviewActivity

1 个答案:

答案 0 :(得分:2)

您需要使用trunk中可以找到的库版本才能使用gist中显示的代码。

您不应该使用Google_PlusMomentsService,因为它已被弃用(并且已从主干中删除)。奇怪的是Google_PlusService不存在,它是here