0

我目前正在用 PHP 创建一个 Twitch 通知网络应用程序。

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

客户希望使用应用程序 -> 在 Twitch 网站上重定向以接受询问的范围 -> 在我的应用程序网站上使用“code”参数重定向 -> curl 请求发送的“code” -> 包含 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 是否有可能使用另一种方式来检查新的关注者?

4

1 回答 1

0

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

于 2015-04-04T20:54:22.593 回答