我正在写一个Twitch WordPress状态插件,显示一个简单的图像,如果它的在线或离线,但我无法让它工作。下面是文件
<?php
/*
Plugin Name: Twitch Status - InvidiousAus
Description: Displays an image if the Twitch channel "invidiousaus" is online.
Author: Your Name
Version: 1.0
*/
function smfr_twitch_get_stream_status($channel) {
$client_id = 'we57gvgtlmhqnmk44d3mcbc68rgrd1'; // Replace with your Twitch API Client ID
$api_url = "https://api.twitch.tv/helix/streams?user_login={$channel}";
$headers = array(
'Client-ID' => $client_id,
);
$args = array(
'headers' => $headers,
);
$response = wp_remote_get($api_url, $args);
if (is_wp_error($response)) {
return "Error fetching Twitch status.";
}
$response_code = wp_remote_retrieve_response_code($response);
if ($response_code === 200) {
$body = wp_remote_retrieve_body($response);
$data = json_decode($body, true);
if (!empty($data['data'])) {
return 'online';
}
}
return 'offline';
}
function smfr_twitch_status_fnc() {
$channel = 'invidiousaus'; // Update to "invidiousaus"
$stream_status = smfr_twitch_get_stream_status($channel);
if ($stream_status === 'online') {
// If the channel is live, show the "online" image
$html = "<div class='smfr-twitch-status'><img src='" . plugin_dir_url(__FILE__) . "img/en_ligne.jpg'></div>";
} else {
// If the channel is offline, show the "offline" image
$html = "<div class='smfr-twitch-status'><img src='" . plugin_dir_url(__FILE__) . "img/hors_ligne.jpg'></div>";
}
return $html;
}
function smfr_twitch_status_style() {
// Register the stylesheet for the plugin (if needed)
// wp_enqueue_style('smfr_twitch_status_style', plugin_dir_url(__FILE__) . 'style.css');
}
add_action('wp_enqueue_scripts', 'smfr_twitch_status_style');
add_shortcode('smfr_twitch_status', 'smfr_twitch_status_fnc');
字符串
尝试尝试不同的API端点,结果为空
期望在twitch.tv上在线的频道在线显示
1条答案
按热度按时间jdzmm42g1#
您的
$headers
缺少Authorization: Bearer 2gbdx6oar67tqtcmt49t3wpcgycthx
或类似令牌。来自https://dev.twitch.tv/docs/api/reference/#get-streams,授权需要应用访问令牌或用户访问令牌。
阅读文档以了解如何获取这样的令牌。这可能是oAuth流。基本上,你创建一个应用程序,然后你得到client_id和client_secret。使用client_secret请求令牌。一旦你得到它,你可以使用添加到头部,然后使用API代表你的应用。(用户访问令牌可能是不同的流)。