<p>Twitch がオンラインかオフラインの場合に単純な画像を表示する Twitch WordPress ステータス プラグインを作成していますが、動作させることができません。ファイルの内容は次のとおりです: </p>
<pre class="brush:php;toolbar:false;"><?php
/*
プラグイン名: Twitch Status - InvidiousAus
説明: Twitch チャンネル「invidiousaus」がオンラインの場合に画像を表示します。
作者: 君の名は。
バージョン: 1.0
*/
関数 smfr_twitch_get_stream_status($channel) {
$client_id = 'we57gvgtlmhqnmk44d3mcbc68rgrd1'; // Twitch API クライアント ID に置き換えます
$api_url = "https://api.twitch.tv/helix/streams?user_login={$channel}";
$headers = 配列(
'クライアント ID' => $client_id,
);
$args = 配列(
'ヘッダー' => $headers、
);
$response = wp_remote_get($api_url, $args);
if (is_wp_error($response)) {
return "Twitch ステータスの取得中にエラーが発生しました。";
}
$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'])) {
「オンライン」を返します。
}
}
「オフライン」を返します。
}
関数 smfr_twitch_status_fnc() {
$channel = 'invidiousaus'; // 「invidiousaus」に更新します
$stream_status = smfr_twitch_get_stream_status($channel);
if ($stream_status === 'オンライン') {
// チャンネルがライブの場合は、「オンライン」画像を表示します
$html = "<div class='smfr-twitch-status'><img src='" .plugin_dir_url(__FILE__) ."img/en_ligne.jpg'></div>";
} それ以外 {
// チャンネルがオフラインの場合、「オフライン」画像を表示します
$html = "<div class='smfr-twitch-status'><img src='" .plugin_dir_url(__FILE__) ."img/hors_ligne.jpg'></div>";
}
$html を返します。
}
関数 smfr_twitch_status_style() {
// プラグインのスタイルシートを登録します (必要な場合)
// 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');</pre>
<p>別の API エンドポイントを使用してみましたが、空の結果が得られました。 </p><p>望ましい結果は、twitch.tv でオンラインのチャンネルを表示することです。 </p>
$headers が見つかりません。認可: Bearer 2gbdx6oar67tqtcmt49t3wpcgycthx または同様のトークンです。
https://dev.twitch.tv/docs/api/reference/#get-streams のドキュメントによると、認可にはアプリケーション アクセス トークンまたはユーザー アクセス トークンが必要です。
このようなトークンを取得する方法については、ドキュメントを参照してください。これは oAuth フローである可能性があります。基本的に、アプリケーションを作成してから、client_id と client_secret を取得する必要があります。 client_secret を使用してトークンを要求します。トークンを取得したら、それをヘッダーに追加し、アプリの代わりに API を使用できます。 (ユーザー アクセス トークンには別のフローが存在する可能性があります)。