Twitch API - 跟随用户,获得“411 Length Required”错误

时间:2014-09-21 16:18:07

标签: php api curl oauth-2.0 twitch

所以我正在为一个希望在他的社交网站上使用简单功能的客户编写一个函数,以便用户可以关注Twitch上的频道,没有任何类似的SDK,我有以下功能:

function twitch_follow_channel($user, $channel, $client_id, $access_token) {

      $ch = curl_init();
            curl_setopt($ch, CURLOPT_PUT, true);
            curl_setopt($ch, CURLOPT_HEADER, true);
            curl_setopt($ch, CURLINFO_HEADER_OUT, true);
            curl_setopt($ch, CURLOPT_URL, 'https://api.twitch.tv/kraken/users/'.$user.'/follows/channels/'.$channel.'?oauth_token='.$access_token);  
            $h = 'Client-ID: '.$client_id.', Accept: application/vnd.twitchtv.v3+json, Authorization: OAuth '. $access_token;
            curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: OAuth '.$access_token,
                                                       'Client-ID: '.$client_id,
                                                       'Content-Length: '.strlen($h), 
                                                       'Accept: application/vnd.twitchtv.v3+json'));    
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
            curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 0); 
      $r  = curl_exec($ch);
      $ci = curl_getinfo($ch);
      r($ci);
      r($r);
      return json_decode($r, true);       

}

我在HTTP HEADER中包含Content-length我不知道我缺少什么

备注

  • 访问令牌具有user_follows_edit范围。
  • r()代替var_dump()
  • 我已经知道GitHub上的DOCs,仔细跟着它

1 个答案:

答案 0 :(得分:0)

最近我自己也这样做了:

 curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT'); 

这样你就说CURL使用PUT作为请求。

要取消关注,只需用DELETE和你的gucci替换PUT。

Atom8tik