请求超时[LINKEDIN API]

时间:2019-05-09 12:51:09

标签: php api linkedin

我需要使用LinkedIn API共享媒体。我目前是来获取令牌并获取个人资料数据的。因此,问题是我无法在该网址“ https://api.linkedin.com/v2/ugcPosts”中发布媒体。

  

How to share on LinkedIn using REST-API v2?

我想这样做,但就我而言,它不起作用

我用方法创建了一个类。我不能放所有代码,因为太长了,但是我可以详细介绍什么是函数角色,所以

  

login_url()->允许我获取代码

     

set_access_token()->允许我与access_token交换代码

     

set_user_urn->请允许我将user_urn设置为在共享功能中发布数据。我的骨灰盒密码就像XXXXXX-XXX。告诉我格式是否正确

public function share() {
    $url = "https://api.linkedin.com/v2/ugcPosts" . $this->_access_token;

    $fields = '{
        "author": "urn:li:person:' . $this->_urn_id . '",
        "lifecycleState": "PUBLISHED",
        "specificContent": {
            "com.linkedin.ugc.ShareContent": {
                "shareCommentary": {
                    "text": "Hello World! This is my first Share on LinkedIn!"
                },
                "shareMediaCategory": "NONE"
            }
        },
        "visibility": {
            "com.linkedin.ugc.MemberNetworkVisibility": "PUBLIC"
        }
    }';

var_dump($fields);


    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
    curl_setopt($curl, CURLOPT_POSTFIELDS, $fields);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

    $httpCode = curl_getinfo($curl , CURLINFO_HTTP_CODE); // this results 0 every time
    $response = curl_exec($curl);

    if ($response === false) 
        $response = curl_error($curl);

    echo stripslashes($response);

    curl_close($curl);

}

我收到以下错误消息:

  

{“ author”:“ urn:li:person:XXXXXX-XXX”,“ lifecycleState”:“ PUBLISHED”,“ specificContent”:{“ com.linkedin.ugc.ShareContent”:{“ shareCommentary”:{“文字”:“ Hello World!这是我在LinkedIn上的首次分享!” },“ shareMediaCategory”:“ NONE”}},“ visibility”:{“ com.linkedin.ugc.MemberNetworkVisibility”:“ PUBLIC”}}“ {” message“:”请求超时“,”状态“:504}

1 个答案:

答案 0 :(得分:0)

我放了这个标题:

$ headers = array('Content-Type:text / plain');

根据此帖子= How to post raw body data with curl?,CURL默认设置为“内容类型:application / x-www-form-urlencoded”。

//共享功能

public function share() {
$url = "https://api.linkedin.com/v2/ugcPosts?oauth2_access_token=" . $this->_access_token;

        $headers = array('Content-Type: text/plain');

        $fields = '{
            "author": "urn:li:person:XXXXXX-XXX",
            "lifecycleState": "PUBLISHED",
            "specificContent": {
                "com.linkedin.ugc.ShareContent": {
                    "shareCommentary": {
                        "text": "Hello World! This is my first Share on LinkedIn2!"
                    },
                    "shareMediaCategory": "NONE"
                }
            },
            "visibility": {
                "com.linkedin.ugc.MemberNetworkVisibility": "PUBLIC"
            }
        }';

        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
        curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
        curl_setopt($curl, CURLOPT_POSTFIELDS, $fields);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

        $httpCode = curl_getinfo($curl , CURLINFO_HTTP_CODE); // this results 0 every time
        $response = curl_exec($curl);

        if ($response === false) 
            $response = curl_error($curl);

        curl_close($curl);

        return stripslashes($response);

    }