LinkedIn API - 无法解析共享文档 - Json

时间:2016-09-09 11:40:45

标签: php json curl linkedin linkedin-api

所以我正在使用LinkedIn API,我正试图在墙上分享一些东西,但是我收到了以下错误:

Couldn't parse share document: error: Unexpected end of file after null

我认为添加HTTPHEADERS会出现问题:

Content-Type: application/json
x-li-format: json

所以这就是我要做的事情:

        $parameters = array("comment" => "Check out developer.linkedin.com, I'm currently testing it myself!",
                            "content" => array( "title" => "LinkedIn Developers Resources",
                                                "description" => "Leverage LinkedIn's APIs to maximize engagement",
                                                "submitted-url" => "https://developer.linkedin.com",
                                                "ubmitted-image-url" => "https://example.com/logo.png"
                                                ),
                            "visibility" => array("visibility" => "anyone")
                            );

        $result = $connection->post("people/~/shares", $parameters);

        var_dump($result);

的var_dump($结果);显示上面的错误消息。

这些是我正在使用的功能:

public function post($path, $parameters = []){

    $url = $this->createUrl($path);

    $parameters = json_encode($parameters);

    return $this->curlRequest('POST', $url, $parameters);
}

这是post函数,它使用以下函数:

private function createUrl($path) {
    return self::API_HOST . "/v" . self::API_VERSION . "/" . $path . "?" . self::FORMAT;
}

private function curlRequest($method, $url, $postData = NULL, $accessToken = false){

    $curl = curl_init();

    switch($method) {
        case 'GET':
            break;

        case 'POST':
            curl_setopt($curl, CURLOPT_POST, true);

            if($accessToken) {
                curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($postData));
            } else {
                curl_setopt($curl, CURLOPT_POSTFIELDS, $postData);
            }

            curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'x-li-format: json'));
            break;

    }

    if ($accessToken) {
        curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
    } else {
        curl_setopt($curl, CURLOPT_HTTPHEADER, array('Authorization: Bearer ' . $this->accessToken));
    }

    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_URL, $url);

    $result = curl_exec($curl);
    curl_close($curl);

    return json_decode($result, true);
}   

希望有人可以帮我解决这个问题。

0 个答案:

没有答案