使用Twitch API的通知


Notifications using Twitch API

我正在用PHP创建一个Twitch通知web应用程序。

目前,身份验证工作正常:

客户端想要使用app ->重定向在Twitch网站上接受请求范围->重定向在我的app网站上与一个"code"参数->"code"发送curl请求->响应包含accessToken.

我将accessToken和客户端用户名存储在$_COOKIE和$_SESSION变量中(设置$_COOKIE并不适用于所有web浏览器)。

之后,我必须检查(实时?)用户是否有新的关注者。某些web应用程序,如TNotifier,在这方面做得很好……但我不知道怎么做。

在Twitch API,我们只有以下请求的可能性列出所有这些追随者。我直接想到,我将不得不一次又一次地提出请求(有一秒钟的延迟),并将新请求与上一个请求进行比较……但我认为还有其他方法可以做到这一点吗?

下面是请求:

curl -H 'Accept: application/vnd.twitchtv.v2+json' '
-X GET https://api.twitch.tv/kraken/channels/test_user1/follows

和JSON响应:

{
  "_links": {
    "next": "https://api.twitch.tv/kraken/channels/test_user1/follows?limit=25&offset=25",
    "self": "https://api.twitch.tv/kraken/channels/test_user1/follows?limit=25&offset=0"
  },
  "follows": [
    {
      "_links": {
        "self": "https://api.twitch.tv/kraken/users/test_user2/follows/channels/test_user1"
      },
      "user": {
        "_links": {
          "self": "https://api.twitch.tv/kraken/users/test_user2"
        },
        "staff": false,
        "logo": null,
        "display_name": "test_user2",
        "created_at": "2013-02-06T21:21:57Z",
        "updated_at": "2013-02-13T20:59:42Z",
        "_id": 40091581,
        "name": "test_user2"
      }
    },
    ...
  ]
}

这是我的代码,但仍然认为存在更好的方法…

$uknown=""; //to initialize my loop function.
comparaison($uknown);
function comparaison($u){
    $options = array(
        'http' => array(
            'header'  => 'Accept: application/vnd.twitchtv.v2+json',
            'method'  => 'GET',
        )
    );
    $context  = stream_context_create($options);
    $result = file_get_contents('https://api.twitch.tv/kraken/channels/test_user1/follows', false, $context);
    $decode_result = json_decode($result, true);
    $follow=$decode_result['follows'][0];
    $user=$follow['user'];
    $last_follower=$user['display_name'];
    if($last_follower != $u){
        haveANewFollower($last_follower);
    }
    comparaison($last_follower);
}

TNotifier是否可能使用另一种方式来检查新的关注者?

这是唯一的方法,因为没有推的方法做追随者,所以你必须依靠拉。对于订阅者,有可能侦听新订阅者的聊天消息,但由于这对追随者不起作用,因此您只能依赖使用kraken api的pull方法。