我目前正在用 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 是否有可能使用另一种方式来检查新的关注者?