I tried to make a message for google plus a moment in php, I use the code below, but when I try to post, I get an authorization error, I do with codeignitter
<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); include_once 'base_controller.php'; class Gp_auth extends Base_controller { private $_gp_client; public function __construct() { parent::__construct(); $this->load->library('googleplus'); $this->_gp_client = $this->googleplus->client; } public function index() { if ($this->input->get_post('code')) { try { $this->_gp_client->authenticate($this->input->get_post('code')); $access_token = $this->_gp_client->getAccessToken(); $this->session->set_userdata('access_token', $access_token); redirect('/gp_auth/me'); } catch (Google_Auth_Exception $e) { _print($e); } } else { $this->_gp_client->addScope(array( 'https://www.googleapis.com/auth/plus.login', 'https://www.googleapis.com/auth/plus.moments.write' )); $this->_gp_client->setRequestVisibleActions('http://schemas.google.com/AddActivity'); try { echo anchor($this->_gp_client->createAuthUrl(), 'Conect Me'); } catch (Google_Auth_Exception $e) { _print($e); } } } public function me() { try { $this->_gp_client->setAccessToken($this->session->userdata('access_token')); $response = $this->googleplus->plus->people->get('me'); _print($response->id); $post_data = array( 'gp_id' => $response->id, 'gp_access_token' => $this->session->userdata('access_token'), 'post_body' => 'Hello Google moment', 'post_attachment' => '' ); $this->load->library('sns_post'); echo $this->sns_post->gp_post($post_data); } catch (Google_Auth_Exception $e) { _print($e); } }
}
The index function was for authentication and 'me' for post-moment
and below is the code for the library code of the instant message called from me by the function
public function gp_post($post_data) { $this->_CI->load->library('googleplus'); _print($post_data['gp_access_token']); $this->_CI->googleplus->client->setAccessToken($post_data['gp_access_token']); $this->_CI->googleplus->client->setRequestVisibleActions('http://schemas.google.com/AddActivity'); $this->_CI->googleplus->item_scope->setId($post_data['gp_id']); $this->_CI->googleplus->item_scope->setType("http://schema.google.com/AddAction"); $this->_CI->googleplus->item_scope->setName("The Google+ Platform"); $this->_CI->googleplus->item_scope->setDescription($post_data['post_body']); if (!empty($post_data['post_attachment'])) { $this->_CI->googleplus->item_scope->setImage($post_data['post_attachment']); } $this->_CI->googleplus->moment_body->setTarget($this->_CI->googleplus->item_scope);
source share