0

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

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

随着更改,它发布到类似于“plus/v1moments/people/”的 URL并显示 404 错误。所以,我修改了src/contrib/Google_PlusMomentsService.php中的 URL ,第 73 行从"plus/v1moments/people" => 到"plus/v1/people"

之后,它显示它需要setRequestVisibleActions才能工作,我意识到 Google 客户端没有该方法,所以我从 Google 存储库中获取最后一个 Google_client:https ://code.google.com/p/google- api-php-client/source/detail?r=534

好的,现在,它可以工作了,但它显示 401 错误,我不知道该怎么做。

错误是:

调用 POST https://www.googleapis.com/plus/v1/people/me/moments/vault?key=XXXXXXXXXXXXXXX时出错:(401) 在 C:\wamp\www\gPlus\src\io\Google_REST.php 中未授权在第 66 行

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

更新

正如 Luciano 所指出的,我使用的是过时的 google-php-client,因此,正如他所指出的,我已经从 SVN 存储库下载了最后一个代码。但是在设置配置文件后,在 Moments 中包含来自 Silvano 的时刻示例文件,并在 Google 控制台和配置文件中配置 API 重定向 URL,/examples 文件夹中的示例不起作用。执行 Silvano PHP 示例会引发“不可用”错误:

Esta página web no está disponible Es posible que la página web 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 esté temporalmente inactiva o que se haya trasladado definitivamente a otra dirección。错误 15 (net::ERR_SOCKET_NOT_CONNECTED):错误 deconocido。

但库中的其他示例也存在相同的错误。时间问题,还是图书馆问题?

更新 2

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

现在,我有另一个问题,它返回一个数组,但它没有在流中发布任何内容。西尔瓦诺,这正常吗?无论如何,非常感谢您的帮助,我的主要问题得到了解答,完成流发布又少了一步,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

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

使用 google-api-PHP-client 在 Google+ 流中的帖子未显示在用户的流中

4

1 回答 1

2

您需要使用可以在主干中找到的库版本,以便 gist 中显示的代码正常工作。

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

于 2013-04-02T09:53:38.123 回答