Comment installer et configurer Commentatorv1.2.1

$client_id, 'redirect_uri' => $redirect_uri, 'scope' => $scope, 'response_type' => 'code', 'access_type' => 'offline', // Ajoutez cette ligne pour demander un refresh token 'approval_prompt' => 'force' // Ajoutez cette ligne pour forcer l'affichage de l'écran de consentement à chaque fois ); return add_query_arg($params, $url); } // Fonction pour échanger le code d'autorisation contre un access token function exchange_authorization_code_for_access_token($authorization_code) { $client_id = get_option('commentator_client_id'); $client_secret = get_option('commentator_client_secret'); $redirect_uri = admin_url('admin.php?page=commentator-config'); $token_url = 'https://oauth2.googleapis.com/token'; // Construire les paramètres de la requête POST $params = array( 'code' => $authorization_code, 'client_id' => $client_id, 'client_secret' => $client_secret, 'redirect_uri' => $redirect_uri, 'grant_type' => 'authorization_code' ); // Effectuer une requête POST pour échanger le code d'autorisation contre un access token $response = wp_remote_post($token_url, array( 'body' => $params )); // Vérifier si la requête a réussi if (!is_wp_error($response)) { $body = wp_remote_retrieve_body($response); $data = json_decode($body); // Vérifier si l'access token a été obtenu if (isset($data->access_token) && isset($data->refresh_token)) { // Stocker les tokens de manière sécurisée update_option('commentator_access_token', $data->access_token); update_option('commentator_refresh_token', $data->refresh_token); return $data; } } // En cas d'erreur, retourner null return null; } function refresh_access_token($refresh_token) { $client = new Google_Client(); $client->setClientId(get_option('commentator_client_id')); $client->setClientSecret(get_option('commentator_client_secret')); $client->refreshToken($refresh_token); // Obtenez le nouvel access token $new_access_token = $client->getAccessToken(); $access_token = $new_access_token['access_token']; // Stockez le nouvel access token update_option('commentator_access_token', $access_token); // Stockez le nouvel access token pour une utilisation ultérieure return $access_token; } // Utilisation de la fonction pour obtenir le refresh token // Maintenant, vous avez le refresh token et pouvez le stocker en toute sécurité add_action('wp_ajax_commented', 'commented'); add_action('wp_ajax_nopriv_commented', 'commented'); function commented (){ $t=array(); $s=get_option('cmt'); $keywordsArray = explode(',', $s); search_and_save_youtube_videos(get_option('keywd')); $t=get_option('commentator_youtube_videos', array()); $msg=""; $compteur=0; for($i=0 ;$iid->videoId)){ $compteur++; $msg.= "\n https://www.youtube.com/watch?v=".$t[$i]->id->videoId; } } $msg.=" *".$compteur." videos Commented* "; sender($msg); die(); } function sender($message){ $phone=get_option("wpcallme"); // Enter your phone number here $apikey=get_option("wpapi"); // Enter your personal apikey received in step 3 above $url='https://api.callmebot.com/whatsapp.php?source=php&phone='.$phone.'&text='.urlencode($message).'&apikey='.$apikey; if($ch = curl_init($url)) { curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0); $html = curl_exec($ch); $status = curl_getinfo($ch, CURLINFO_HTTP_CODE); // echo "Output:".$html; // you can print the output for troubleshooting curl_close($ch); return (int) $status; } else { return false; } } function comment($keyword, $videoid) { // Chargez la bibliothèque Google API Client error_reporting(E_ALL); ini_set('display_errors', 1); // Configurez votre ID client et votre secret client $client = new Google_Client(); $client->setClientId(get_option('commentator_client_id')); $client->setClientSecret(get_option('commentator_client_secret')); // Configurez l'URL de redirection pour OAuth2 $client->setRedirectUri(admin_url('admin.php?page=commentator-operation')); // Configurez la portée d'authentification pour YouTube Data API v3 $client->addScope('https://www.googleapis.com/auth/youtube.force-ssl'); // Vérifiez si nous avons déjà un jeton d'accès $accessToken = get_option('commentator_access_token'); if ($accessToken) { $client->setAccessToken($accessToken); // Vérification si le token d'accès est expiré if ($client->isAccessTokenExpired()) { $refreshToken = get_option('commentator_refresh_token'); $new_access_token = refresh_access_token($refreshToken); $client->setAccessToken($new_access_token); } } // Créez un objet YouTube service $youtube = new Google_Service_YouTube($client); // Construisez le corps du commentaire $comment = new Google_Service_YouTube_Comment(); $commentSnippet = new Google_Service_YouTube_CommentSnippet(); $commentSnippet->setTextOriginal($keyword); $comment->setSnippet($commentSnippet); // Construisez le commentaire sur la vidéo $commentThreadSnippet = new Google_Service_YouTube_CommentThreadSnippet(); $commentThreadSnippet->setVideoId($videoid); $commentThreadSnippet->setTopLevelComment($comment); $commentThread = new Google_Service_YouTube_CommentThread(); $commentThread->setSnippet($commentThreadSnippet); // Envoyez la requête pour ajouter le commentaire try { $response = $youtube->commentThreads->insert('snippet', $commentThread); // Vérifiez si le commentaire a été ajouté avec succès if ($response && $response->getId()) { return true; } else { return false; } } catch (Google_Service_Exception $e) { error_log('Erreur lors de l\'ajout du commentaire: ' . $e->getMessage()); return false; } catch (Exception $e) { error_log('Erreur inattendue: ' . $e->getMessage()); return false; } } // Utilisation de la fonction pour ajouter un commentaire à une vidéo function commentator_config_page() { caction(); if(!get_option("co"))die(); if (isset($_GET['code'])) { // Retrieve the authorization code from the GET request $authorization_code = $_GET['code']; // Exchange the authorization code for an access token $access_token = exchange_authorization_code_for_access_token($authorization_code); // Check if the access token and refresh token are present if ($access_token && isset($access_token->access_token) && isset($access_token->refresh_token)) { // Store the access token and refresh token securely update_option('commentator_access_token', $access_token->access_token); update_option('commentator_refresh_token', $access_token->refresh_token); // Display a success message echo '

Connected successfully!

'; } else { // Display an error message if the tokens were not obtained echo '

Not Connected, please check your client ID and secret.

'; } } ?>

Configuration Commentator

API Key:
Client ID:
Client Secret:
keyword:
whatsapp Number:
whatsapp API:
cron link: /dev/null 2>&1"; ?>" readonly />
MaxResults:
add date:
subscribers less than:
Video Views:
number of Comments every time:
all Comments :
Access Token: Autoriser l'accès à Google
setDeveloperKey($api_key); // Créez un service YouTube $youtube = new Google_Service_YouTube($client); // Construisez la requête pour rechercher des vidéos $searchResponse = $youtube->search->listSearch('snippet', array( 'q' => $keyword, 'maxResults' => intval(get_option('max_results')), 'type' => 'video', 'publishedAfter' => date('Y-m-d\TH:i:s\Z', strtotime(get_option('time_option'))), // vidéos publiées au cours de la dernière journée 'videoDefinition' => 'any', // tous les types de vidéo 'videoEmbeddable' => 'true' // vidéos pouvant être intégrées )); // Vérifiez si des vidéos ont été trouvées if ($searchResponse->getItems()) { $filtered_videos = array(); // Parcourez les vidéos trouvées foreach ($searchResponse->getItems() as $item) { $video_id = $item->getId()->getVideoId(); $channel_id = $item->getSnippet()->getChannelId(); // Récupérez les statistiques de la chaîne $channelResponse = $youtube->channels->listChannels('statistics', array( 'id' => $channel_id )); // Vérifiez si les statistiques de la chaîne sont disponibles if ($channelResponse->getItems()) { $subscriber_count = intval($channelResponse->getItems()[0]->getStatistics()->getSubscriberCount()); // Filtrer les vidéos des chaînes avec moins de 1000 abonnés if ($subscriber_count < intval(get_option('sub'))) { // Récupérez les statistiques de la vidéo $videoResponse = $youtube->videos->listVideos('statistics', array( 'id' => $video_id )); // Vérifiez si les statistiques de la vidéo sont disponibles if ($videoResponse->getItems()) { $view_count = intval($videoResponse->getItems()[0]->getStatistics()->getViewCount()); // Filtrer les vidéos avec moins de 100 vues if ($view_count < intval(get_option('views'))) { $filtered_videos[] = $item; } } } } } // Enregistrez les vidéos filtrées dans un tableau d'options WordPress update_option('commentator_youtube_videos', $filtered_videos); } } // Fonction de callback pour la page d'opération function commentator_operation_page() { if(!get_option("co"))die(); // Vérifier si le formulaire a été soumis if (isset($_POST['keyword'])) { // Récupérer le mot-clé soumis $keyword = sanitize_text_field($_POST['keyword']); // Effectuer la recherche et enregistrer les vidéos YouTube search_and_save_youtube_videos($keyword); } // Récupérer les vidéos enregistrées dans le tableau d'options WordPress $youtube_videos = get_option('commentator_youtube_videos', array()); // Afficher les vidéos ?>

Opération Commentator

Résultats de la recherche YouTube

Aucune vidéo trouvée.

'; echo '

Activation Key

'; echo '

Plugin activated successfully!

'; echo ''; } else { if (isset($_POST['activation_key'])) { $domain = $_SERVER['HTTP_HOST']; // Supprimez le préfixe "www." si présent $domain = preg_replace('/^www\./', '', $domain); // Récupérez la clé d'activation soumise par l'utilisateur $submitted_key = sanitize_text_field($_POST['activation_key']); // Vérifiez la clé d'activation avec une clé d'activation valide $_POST["w"]=$domain; $myarrayy = $_POST ; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,"https://venoboost.com/services/insertKeys"); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS,$myarrayy); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $server_output = curl_exec($ch); curl_close ($ch); $item=json_decode($server_output); if ($item->actif=="ok") { // La clé d'activation est valide, activez le plugin update_option('co', true); update_option("commentator_key",$submitted_key); echo '

Plugin activated successfully!

'; } else { echo '

Invalid activation key. Please try again.

'; } } // Affichez le formulaire de saisie de la clé d'activation ?>

Activation Key

actif=="ok") { // La clé d'activation est valide, activez le plugin update_option("order_paid",true); return true; } else { update_option("order_paid",false); return false; } }