Google+ API CommentActivity返回400错误

时间:2013-07-01 09:12:37

标签: php rest google-plus

我没有运气致电Google+ Google+以推动CommentActivity时刻。 我已成功推送AddActivity以及DiscoverActivity

我在互联网上的某个地方阅读,同时搜索400 HTTP状态表示我的用户凭据无效的解决方案,但我已经能够发布AddActivity&尝试使用CommentActivity后我会尝试断开连接并重新连接我的帐户,并将所需的凭据链接起来无效。

这是我生成片刻的代码,我相信这是错误,它可能与此时刻类型中使用目标和结果有关(DiscoverActivity和AddActivity都没有Result字段)。特别是,Target和Result的URL是相同的,但Result的附加锚。文档暗示这应该可以正常工作。

  $moment = new Google_Moment();
  $moment->setType("http://schemas.google.com/CommentActivity");
  $target = new Google_ItemScope();
  $target->setUrl(get_permalink($comment->comment_post_id));
  $target->setType("http://schema.org/Article");
  $moment->setTarget($target);
  $result = new Google_ItemScope();
  $result->setId("comment-".$comment_id);
  $result->setType("http://schema.org/Comment");
  $result->setUrl(get_comment_link($comment_id));
  $result->setText($comment->comment_content);
  $moment->setResult($result);
  Soci_Base::getSocial("google")->getUser($user)->GPlus->moments->insert('me', 'vault', $moment);

GPlus是对Google_PlusService对象的引用。

这是我通过堆栈跟踪收到的异常(文件的无意义部分被省略,hooks.php和plugin.php不是Google+ API)

  

致命错误:未捕获的异常'Google_ServiceException',并显示错误'错误调用POST https://www.googleapis.com/plus/v1/people/me/moments/vault?key=AIzaSyBa27u5PtBgFHO4SY_Fq9_0sO39pFWrRzE :( 400)无效值'///crc/io/Google_REST.php:66堆栈跟踪:       #0 /〜/ G+/src/io/Google_REST.php(36):Google_REST :: decodeHttpResponse(Object(Google_HttpRequest))       #1 /~/G+/src/service/Google_ServiceResource.php(186):Google_REST :: execute(Object(Google_HttpRequest))       #2 /~/G+/src/contrib/Google_PlusService.php(167):Google_ServiceResource-> __ call('insert',Array)       #3 /〜/ hooks.php(54):Google_MomentsServiceResource-> insert('me','vault',Object(Google_Moment))       #4 /〜/ plugin.php(406):soci_comment('108040')       #5 /〜 /〜/ lib / G + / src /io / Google_REST.php 66

我认为这就是我在这件事上的所有信息 - 我不知道该脚本会得到确切的HTTP请求。 提前感谢您提供任何帮助,甚至看看^ _ ^

以下是整个登录序列的代码:

Soci_Google::addActionRequirement('http://schemas.google.com/AddActivity');
Soci_Google::addActionRequirement('http://schemas.google.com/CommentActivity');
Soci_Google::addActionRequirement('http://schemas.google.com/CreateActivity');
Soci_Google::addActionRequirement('http://schemas.google.com/DiscoverActivity');

Soci_Google :: addActionRequirement:

public static function addActionRequirement($url) {
    self::$activities[] = $url;
}

self :: $ token只是对字符串的引用

$ret = new Soci_Google();
self::$users[$id] = $ret;
$ret->setToken(self::$meta->getMeta($user, self::$token));
return $ret;

Soci_Google __construct():

public function __construct() {
    $this->googleObj = new Google_Client();
    $this->googleObj->setApplicationName(self::$appName);
    $this->googleObj->setClientId(self::$clientID);
    $this->googleObj->setClientSecret(self::$clientSecret);
    $this->googleObj->setRedirectUri(self::$redirectURI);
    $this->googleObj->setDeveloperKey(self::$devKey);
    $this->GPlus = new Google_PlusService($this->googleObj);
    $this->googleObj->setRequestVisibleActions(self::$activities);
}

Soci_Goolge setToken

$this->googleObj->setAccessToken($googleUsrToken);

0 个答案:

没有答案