TL;DR Créez un bot qui prend en charge la femme Anna (retweete des photos et des vidéos). Utilisez TwitterAPI et Google App Script (GAS). Je pense que vous serez heureux si vous suivez ce compte ^^
Le jour de l'An, si je déconnais ~~ Quand je regardais les informations, j'ai trouvé une belle Anna nommée Mako Tamura. Je voulais suivre Twitter, mais je n'avais ni officiel ni Bot, alors j'ai décidé de le faire moi-même.
À propos de la sélection de la langue. Mon langage principal est Python, mais je veux qu'il soit exécuté régulièrement et seul. Cette fois, j'ai décidé d'écrire en GAS.
――Je ne parlerai que de ce que j'ai fait (j'espère que vous appréciez le concept)
Pour 1, reportez-vous à cet article 2 fait référence à cet article (merci infiniment) À ce stade, si quelque chose est approprié, je pense que vous êtes prêt à tweeter de GAS.
3 J'écrirai bien d'ici Pour l'instant
//Générer une instance pour l'authentification
var twitter = TwitterWebService.getInstance(
'xxxx',//API Key
'xxxx'//API secret key
);
//Lier l'authentification des applications
function authorize() {
twitter.authorize();
}
//Annuler l'autorisation
function reset() {
twitter.reset();
}
//Rappel après authentification
function authCallback(request) {
return twitter.authCallback(request);
}
//Retweeter
function retweet(tweetid){
var service = twitter.getService();
var response = service.fetch('https://api.twitter.com/1.1/statuses/retweet/'+tweetid+'.json', {
method: 'post',
payload: { id: tweetid}
});
Logger.log(JSON.parse(response));
}
//Publier
function doPost(){
var id = 'xxx';
retweet(id);
}
Ça ressemble à ça. En supposant que 1.2. Est terminé Si vous spécifiez un Tweetid approprié (comme vous pouvez le voir à partir de l'URL de l'écran du tweet publié) pour «xxx» de la fonction doPost et exécutez la fonction doPost, il devrait être retweeté à merveille.
Rendons possible la récupération automatique de cette partie id. Cela ressemble à ce qui suit.
//Vérifiez si le tweet est dans les 24 heures [fonction nouvellement ajoutée]
function within24(twt){
var oneday = 1000 * 60 * 60 * 24
var created = twt.created_at;
var c = new Date(created);
var today = new Date();
var timeDelta = (today.getTime() - c.getTime())/oneday;
Logger.log(timeDelta);
if (timeDelta<1){
return true;
}else{
return false;}
}
//Obtenez un mot de recherche,Renvoie un tableau d'identifiants de tweet qui correspondent aux conditions [fonction nouvellement ajoutée]
function search(word){
if (word == "") {
return;
}
word = encodeURIComponent(word);
var url, options, response, jsonString, json, tweets = [];
//URL de l'API de recherche Twitter
var API_URL = "https://api.twitter.com/1.1/search/tweets.json?";
try {
url = API_URL + "count=100" + "&q=" + word;
try {
var service = twitter.getService();
var response = service.fetch(url, {method: 'get'});
var array = JSON.parse(response)['statuses'];
var leng = array.length;
var output = [];
//Vérifiez si l'image existe
for(var i=0; i<leng; i++){
var twt = array[i];
var ent = twt.entities;
if ('media' in ent){
if (within24(twt)){
output.push(twt['id_str']);
}
}
}
} catch(e) {
Logger.log(e);
return;
}
return output;
} catch(e){
Logger.log(e);
}
}
//Message [Fonction qui a été un peu falsifiée plus tôt]
//Spécifiez un mot de recherche et lancez-le à la fonction de recherche, puis lancez le tableau résultant à la fonction de retweet et exécutez
function doPost(){
var nums = search('Mako Tamura');
if (nums){
nums.forEach(function(id){
retweet(id);});
}
}
J'ai écrit l'explication de chaque fonction dans la partie commentée!
4 À ce stade, spécifiez simplement le déclencheur! Accédez à l'écran de gestion des déclencheurs avec "Edition" -> "Déclenchement pour le projet en cours" Sélectionnez Ajouter un déclencheur. La condition est enregistrée de cette manière afin que la fonction doPost soit exécutée une fois par jour.
Donc, je ne sais pas vraiment à qui s'adresse le texte, alors Je compléterai les parties manquantes à l'avenir.
GAS×TwitterBot searchAPI (Officiel)
Recommended Posts