Проблема API Google Domains при публикации в профиле пользователя

У меня проблема с публикацией в профиле пользователя (ошибка не у всех пользователей).

Код ошибки: 400. Сообщение об ошибке. Вызовы этого метода должны выполняться +страницей или от ее имени.

$options = array( "headers" => array( 'content-type' => 'application/json;' ), "body" => json_encode($activity) );
$httpClient = $this->gplus->client->authorize(); 
$request = $httpClient->post("googleapis.com/plusPages/v2/people/$Id/activities";, $options);
$response = $request->getBody();
$googlePostResponse = $response->getContents();
$googlePostResponse = json_decode($googlePostResponse, TRUE); 

person sophia mohla    schedule 09.02.2018    source источник
comment
Пожалуйста, включите ваш код   -  person DaImTo    schedule 09.02.2018
comment
@DaImTo code $options = array(headers =› array( 'content-type' =› 'application/json;'), body =› json_encode($activity)); $httpClient = $this-›gplus-›client-›authorize(); $request = $httpClient-›post(googleapis.com/plusPages/v2/ люди/$Id/действия, $options); $response = $request->getBody(); $googlePostResponse = $response-›getContents(); $googlePostResponse = json_decode($googlePostResponse, TRUE);   -  person sophia mohla    schedule 09.02.2018
comment
Возможно, вы захотите отредактировать свою тему и теги. Это API доменов, а не google puls, это не имеет ничего общего с Google+.   -  person DaImTo    schedule 09.02.2018


Ответы (1)


Код, который вы сейчас используете, относится к API Google Domains. Ошибка означает, что пользователь, с которым вы в настоящее время аутентифицированы, не имеет доступа к учетной записи домена. Обязательно предоставьте пользователю доступ, и он сможет публиковать сообщения на странице доменов google+ аутентификация< /а>

Примечание:

Существует разница между Google+ API (веб-сайт социальной сети) и Google Domains API (Gsuite).

Google+ API доступен только для чтения и не позволяет программно вставлять сообщения в Google+.

Как работает аутентификация

Когда вы аутентифицируете свое приложение, используя эти области

$this->client->addScope('googleapis.com/auth/plus.me'); 
$this->client->addScope('googleapis.com/auth/plus.stream.write'); 
$this->client->addScope('googleapis.com/auth/plus.stream.read'); 
$this->client->addScope('googleapis.com/auth/plus.pages.manage'); 
$this->client->addScope('googleapis.com/auth/plus.media.readwrite');

Вы спрашиваете пользователя, могу ли я сделать это от вашего имени. Однако, если у пользователя нет разрешения что-то делать, вы не сможете этого сделать.

вызовы этого метода должны быть сделаны Страницей Google+ или от ее имени.

Пользователь, с которым вы проходите аутентификацию, не имеет доступа к бизнес-странице. Таким образом, ваше приложение не может писать на бизнес-страницу. Вы можете отправлять сообщения в учетную запись домена, только если у вас есть учетная запись gsuite. Если у вас его нет, вы не можете опубликовать его. вы не можете просто дать им идентификатор вашей бизнес-страницы, потому что опять же у них нет доступа, чтобы написать на вашу бизнес-страницу.

person DaImTo    schedule 09.02.2018
comment
Да, но у меня возникла эта проблема в некоторых пользовательских случаях. В сообщении профиля другого пользователя хорошо работает код. это неправильный код, тогда почему он работал в сообщении профиля другого пользователя? - person sophia mohla; 09.02.2018
comment
Пользователю необходим доступ к вашей учетной записи gsuite, чтобы иметь возможность публиковать сообщения от имени домена. - person DaImTo; 09.02.2018
comment
Я бы проверил доступ и тип доступа, который вы отправляете. - person DaImTo; 09.02.2018
comment
Этот код успешно работает примерно с 1400 профилями пользователей. Получил эту ошибку только у 26 пользователей. Нужно изменить код? - person sophia mohla; 09.02.2018
comment
вам, вероятно, нужно предоставить доступ этим пользователям. Я бы проверил их разрешения. - person DaImTo; 09.02.2018
comment
Это разрешения, которые ваше приложение использует для доступа к API. Они не имеют ничего общего с разрешениями пользователей в самом домене. Свяжитесь со своим администратором gsuite и узнайте, есть ли у него какая-либо информация о доступе пользователей к учетной записи домена. - person DaImTo; 09.02.2018
comment
Я использую API бизнес-страницы. В моем проекте домен API не требуется. - person sophia mohla; 12.02.2018
comment
Пользователям необходимо разрешение писать на вашу бизнес-страницу. Убедитесь, что им предоставлены разрешения. - person DaImTo; 12.02.2018
comment
Да, у меня есть разрешение на аутентификацию пользователя, чтобы получить разрешение на публикацию от имени пользователя. Как я упоминал ранее. У меня проблема для некоторых пользователей, но не для всех. При подключении я получил все разрешения, которые мне нужно опубликовать в профиле пользователя. - person sophia mohla; 13.02.2018
comment
Вы все еще не понимаете проблемы. Пользователь, с которым вы проходите аутентификацию, пытается опубликовать сообщение на вашей бизнес-странице. Они не могут этого сделать, если вы не предоставите им разрешение на своей бизнес-странице писать на нее. То, что вы аутентифицируете пользователя, не означает, что у него есть разрешение что-то делать. - person DaImTo; 13.02.2018
comment
Если вы не можете публиковать сообщения в профиле пользователей, пока они не станут частью вашей учетной записи домена. - person DaImTo; 13.02.2018