通过Twitch API和php获取Twitch剪辑数据

时间:2017-03-05 13:25:00

标签: php curl twitch

我正在尝试获取某些Twitch剪辑的数据,例如这一个https://clips.twitch.tv/MushyJollyWalrusUWot

$videosApi = 'https://api.twitch.tv/kraken/clips/savjz/MushyJollyWalrusUWot';
$clientId = 'my client id';
$ch = curl_init();

curl_setopt_array($ch, array(
    CURLOPT_HTTPHEADER => array(
        'Client-ID: ' . $clientId
    ),
    CURLOPT_SSL_VERIFYPEER => false,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_URL => $videosApi
));

$response = curl_exec($ch);
curl_close($ch);

$json = json_decode($response, TRUE);

print_r($json);

我收到一个404错误的数组,但是这个代码可以正常使用另一个Twitch api的东西,例如Twitch vod:

$videosApi = 'https://api.twitch.tv/kraken/videos/125820676';
//the rest is same

2 个答案:

答案 0 :(得分:2)

就像我在视频中找到的那样,剪辑是通过他们的名字来解决的,所以我从你的例子中删除了用户名。

我最终使用此网址https://api.twitch.tv/kraken/clips/MushyJollyWalrusUWot,该网址已成功返回包含剪辑信息的稍大的JSON blob,我已将其保存在以下网址:PasteBin - "SO Answer - Getting Twitch clip data via Twitch API and php"

我曾经能够查询一些基本网址,例如https://api.twitch.tv/kraken/,以便查看可用资源列表,我可以通过连续添加到路径来查询,但/kraken和<{1}} root提供用户信息,而/kraken/似乎不是有效的资源。

用于从shell访问它的API文档似乎在这里:Twitch Developers - Twitch API Overview

顺便说一句,我刚刚使用了shell,可能不得不提供两者客户端ID和带有/kraken/base范围的OAuth令牌。我按照本指南查看了我的重复情况:GitHub - raine/twitch-cli - Setup。 它不是PHP,所以我没有详细检查您的代码,但其中一些步骤可能会帮助您进行概念性故障排除。

答案 1 :(得分:0)

只需添加您的密钥

参数(可选):

limit = 10

game =守望先锋

trending = true

    //set header for pretty print
    header('Content-Type: application/json');
    $videosApi = 'https://api.twitch.tv/kraken/clips/top?limit=100&channel=ratirl';
    $clientId = 'secret app id provided by twitch';
    $ch = curl_init();

    curl_setopt_array($ch, array(
    CURLOPT_HTTPHEADER => array(
//standard api requirement from twitch api headers
    'Accept: application/vnd.twitchtv.v5+json',
    'Client-ID: ' . $clientId
    ),
    CURLOPT_SSL_VERIFYPEER => false,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_URL => $videosApi
    ));

    $response = curl_exec($ch);
    curl_close($ch);
    //decode the response
    $json = json_decode($response, JSON_PRETTY_PRINT);
    //print response
    print_r($json);