CAKEPHP 2.0 LinkedIn Plugin - ¿Publicar una parte?
-
27-10-2019 - |
Pregunta
Estoy usando estos complementos de LinkedIn para CakePHP 2.0.4: https://github.com/proloser/cakephp-linkedin
Configuro todo para que funcione bien con el inicio de sesión y obtenga perfiles del usuario como el nombre del primer, apellido, ... usando esta sintaxis: $ this-> linkedIn-> find ("all", ...). Renuncié al nombre predeterminado, "LinkedIn", de LinkedIn DataSource a "LinkedIneSource", por lo tanto, puedo llamar a mi modelo "LinkedIn" solo para mi conveniencia.
Seguí el archivo /Plugin/linkedin/model/linkedinmessage.php Para crear esta función en mi modelo LinkedIn:
function updateStatus($message) {
$request = $this->request;
$request['uri']['path'] = 'people/~/shares';
$this->request = $request;
//Above 3 lines are used to bypass the error "changing value of overloaded object property has no effect if I use $this->request["uri"]["path"] = "..."
$data = array(
'comment' => $message
, 'visibility' => array('code' => 'anyone')
);
//Above settings follow this: https://developer.linkedin.com/documents/share-api
$saved = $this->save($data);
}
Cuando ejecuto el código anterior usando mi propia cuenta de LinkedIn (conectado y autorizado), el valor de $ guardado es solo CIERTO Pero no se publica ningún estado/compartir en mi cuenta de LinkedIn cuando abro mi cuenta en un navegador (Google Chrome)
Traté de cambiar el camino de Uri a
$request['uri']['path'] = 'people/~/person-activities';
y solicitar datos a:
$data = array(
'content-type' => "linkedin-html"
, 'body' => $message
);
como en https://developer.linkedin.com/documents/post-network-update Pero aún no hay mejor resultado.
También cambio estas líneas en /Plugin/linkedin/config/linkedinsource.php:
$config['Apis']['LinkedinSource']['write'] = array(
// http://developer.linkedin.com/docs/DOC-1044
'mailbox' => array(
'people/~/mailbox' => array(
'subject',
'body',
'recipients',
),
),
);
a
$config['Apis']['LinkedinSource']['write'] = array(
// http://developer.linkedin.com/docs/DOC-1044
'mailbox' => array(
'people/~/mailbox' => array(
'subject',
'body',
'recipients',
),
),
//https://developer.linkedin.com/documents/share-api
'shares' => array(
'people/~/shares' => array(
'comment',
'content',
'visibility',
),
),
);
Pero aún no hay mejor resultado.
Solo se nota que agregué estas líneas en /Plugin/linkedin/model/linkedinmessage.php
public $startQuote;
public $endQuote;
Para evitar estos errores:
Undefined property: LinkedinSource::$startQuote [CORE/Cake/Model/Model.php, line 1269]
Undefined property: LinkedinSource::$endQuote [CORE/Cake/Model/Model.php, line 1269]
No sé si eso puede causar mi problema o no, pero quiero enumerar todos los detalles aquí.
Por favor, ayude cuando pasé casi un día para que esto funcione, pero aún no puedo :(
Solución
Encontré el problema! los Tipo de contenido Debe ser Aplicación/JSON ¡para que funcione! Pensé X-Li-formato: JSON es suficiente pero no lo es.