CakePHP 2.0 Плагин LinkedIn - Опубликовать поделиться? - PullRequest
0 голосов
/ 11 января 2012

Я использую этот плагин LinkedIn для CakePHP 2.0.4: https://github.com/ProLoser/CakePHP-LinkedIn

Я настроил все, чтобы нормально работать с логином и получать профили пользователей, такие как имя, фамилия, ..., используя следующий синтаксис: $ this-> Linkedin-> find ("all", ...). Я переименовал имя по умолчанию «Linkedin» источника данных Linkedin в «LinkedinSource», поэтому я могу назвать свою модель «Linkedin» только для моего удобства.

Я добавил файл / Plugin / Linkedin / Model / LinkedinMessage.php , чтобы создать эту функцию в моей модели 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);
}

Когда я запускаю приведенный выше код, используя мою собственную учетную запись LinkedIn (подключен и авторизован), значение $ Saved равно TRUE , но НИКАКОЙ статус / доля не присваивается моей учетной записи LinkedIn, когда я открываю свою учетную запись в браузер (Google Chrome)

Я пытался изменить путь URI на

    $request['uri']['path'] = 'people/~/person-activities';

и запросить данные по адресу:

    $data = array(
        'content-type' => "linkedin-html"
        , 'body' => $message
    );

как и в https://developer.linkedin.com/documents/post-network-update, но все равно лучшего результата нет.

Я также изменяю эти строки в / 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',
        ),
    ),
);

до

$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',
        ),
    ),
);

но лучшего результата пока нет.

Только заметьте, я добавил эти строки в / Plugin / Linkedin / Model / LinkedinMessage.php

    public $startQuote;
    public $endQuote;

чтобы избежать этих ошибок:

Undefined property: LinkedinSource::$startQuote [CORE/Cake/Model/Model.php, line 1269]
Undefined property: LinkedinSource::$endQuote [CORE/Cake/Model/Model.php, line 1269]

Я не знаю, может ли это вызвать мою проблему или нет, но я хочу перечислить все детали здесь.

Пожалуйста, помогите, поскольку я потратил почти один день, чтобы сделать эту работу, но все еще не могу: (

1 Ответ

1 голос
/ 13 января 2012

Нашел проблему! Content-Type ДОЛЖЕН быть application / json , чтобы работать!Я думал x-li-format: json достаточно, но это НЕ.

...