Affichage d'images hors ligne Plug-in Twitch WP
P粉391677921
2023-07-26 16:40:51
<p>J'écris un plugin de statut Twitch WordPress qui affiche une image simple si Twitch est en ligne ou hors ligne, mais je n'arrive pas à le faire fonctionner. Voici le contenu du fichier : </p>
<pre class="brush:php;toolbar:false;"><?php
/*
Nom du plugin : Statut Twitch - InvidiousAus
Description : Affiche une image si la chaîne Twitch "invidiousaus" est en ligne.
Auteur : Votre nom
Version : 1.0
*/
fonction smfr_twitch_get_stream_status ($ canal) {
$client_id = 'we57gvgtlmhqnmk44d3mcbc68rgrd1'; // Remplacez par votre ID client de l'API Twitch
$api_url = "https://api.twitch.tv/helix/streams?user_login={$channel}";
$en-têtes = tableau(
'ID-Client' => $client_id,
);
$args = tableau(
'en-têtes' => $en-têtes,
);
$response = wp_remote_get($api_url, $args);
if (is_wp_error($response)) {
return "Erreur lors de la récupération du statut Twitch.";
}
$response_code = wp_remote_retrieve_response_code($response);
si ($response_code === 200) {
$body = wp_remote_retrieve_body($response);
$data = json_decode($body, true);
si (!empty($data['data'])) {
retourner « en ligne » ;
}
}
renvoyer « hors ligne » ;
}
fonction smfr_twitch_status_fnc() {
$channel = 'invidiousaus'; // Mise à jour vers "invidiousaus"
$stream_status = smfr_twitch_get_stream_status($canal);
if ($stream_status === 'en ligne') {
// Si la chaîne est en direct, afficher l'image "en ligne"
$html = "<div class='smfr-twitch-status'><img src='" .
} autre {
// Si la chaîne est hors ligne, afficher l'image "hors ligne"
$html = "<div class='smfr-twitch-status'><img src='" .
}
renvoie $html;
}
fonction smfr_twitch_status_style() {
// Enregistrez la feuille de style du plugin (si nécessaire)
// 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>J'ai essayé d'utiliser différents points de terminaison d'API, mais j'ai obtenu un résultat vide. </p><p>Le résultat souhaité est d'afficher les chaînes en ligne sur twitch.tv. </p><p><br /></p>
Vos en-têtes $ manquent Autorisation : Bearer 2gbdx6oar67tqtcmt49t3wpcgycthx ou jeton similaire.
Selon la documentation sur https://dev.twitch.tv/docs/api/reference/#get-streams, l'autorisation nécessite un jeton d'accès à l'application ou un jeton d'accès utilisateur.
Lisez la documentation pour savoir comment obtenir un tel jeton. Il peut s'agir du flux oAuth. Fondamentalement, vous devez créer une application, puis obtenir le client_id et le client_secret. Utilisez client_secret pour demander le jeton. Une fois que vous disposez du jeton, vous pouvez l'ajouter à l'en-tête, puis utiliser l'API au nom de votre application. (Il peut y avoir un flux différent pour les jetons d'accès utilisateur).