Google_Activity must be an instance of Google_ActivityObject

半腔热情 提交于 2019-12-22 13:49:07

问题


I don't know what is the error of this. I might think as well is in the library of google PHP client can someone help with this.

This is my code:

$this->client->refreshToken($con[0]->secret);
$newtoken = $this->client->getAccessToken();
$this->client->setAccessToken($newtoken);

$activityAccess = new Google_Acl();
$activityAccess->setDomainRestricted(true);

$object = new Google_ActivityObject();
$originalContent = $object->setOriginalContent('Happy me');
$originalContent = $object->setContent('Happy me');
$originalContent = $object->setObjectType('domain');

$body = explode(".", $args["post"]);
$activity = new Google_Activity();
$postBody = $activity->setTitle($body[0]);
$postBody = $activity->setVerb('post');
$postBody = $activity->setKind('plus#activity');
$postBody = $activity->setObject($originalContent);
$postBody = $activity->setAccess($activityAccess);

$data = $this->connect->activities->insert('me', $postBody);

This generates the error below. I don't know what exactly the error means.

A PHP Error was encountered
Severity: 4096
Message:  Argument 1 passed to Google_Activity::setObject() must be an instance of Google_ActivityObject , null given, called in
/home/socialsu/public_html/application/autopost/Google_plus.php on
line 179 and  defined
Filename: contrib/Google_PlusDomainsServices.php
Line Number: 635
A PHP Error was encountered
Severity: 4096
Message:  Argument 2 passed to Google_ActivitiesServiceResource::insert() must be an instance of Google_Activity, null given, called in /home/socialsu/public_html/application/autopost/Google_plus.php on line 182 and  defined
Filename: contrib/Google_PlusDomainsServices.php
Line Number: 54
A PHP Error was encountered
Severity: Notice
Message:  Undefined index: type
Filename: io/Google_REST.php
Line Number: 98
A PHP Error was encountered
Severity: Notice
Message:  Undefined index: value
Filename: io/Google_REST.php
Line Number: 109

回答1:


The error here is that the activity object is not being properly built, hence the error "must be an instance of Google_Activity". There are different ways in which you can build the activity object to insert it as a comment in your G Suite Google Plus profile. Take for example the following approach.

$service = new Google_Service_PlusDomains($client);

$activity = new Google_Service_PlusDomains_Activity(
   array(
      'access' => array(
          'items' => array(
              'type' => 'domain'
          ),
          'domainRestricted' => true
      ),
      'verb' => 'post',
      'object' => array(
          'originalContent' => "Post using Google API PHP Client Library!" 
      ), 
   )
);

$newActivity = $service->activities->insert("me", $activity);    

var_dump($newActivity);

The reference documentation explains what are the required and optional properties the object must have. I strongly recommend you to build the object using an array as explained above. That should make it work. I hope this information helps.



来源:https://stackoverflow.com/questions/42894829/google-activity-must-be-an-instance-of-google-activityobject

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!