TL;DR Erstellen Sie einen Bot, der weibliche Anna unterstützt (retweet Fotos und Videos). Verwenden Sie TwitterAPI und Google App Script (GAS). Ich denke, Sie werden sich freuen, wenn Sie [diesem Konto] folgen (https://twitter.com/TamuraOenBot) ^^
Am Neujahrstag, als ich herumspielte, fand ich eine schöne Anna namens Mako Tamura, als ich die Nachrichten sah. Ich wollte Twitter folgen, hatte aber keinen Beamten oder Bot, also habe ich beschlossen, es selbst zu machen.
Informationen zur Sprachauswahl. Meine Hauptsprache ist Python, aber ich möchte, dass es regelmäßig und eigenständig ausgeführt wird. Diesmal habe ich beschlossen, in GAS zu schreiben.
――Ich werde nur darüber sprechen, was ich getan habe (ich hoffe, Ihnen gefällt das Konzept)
Für 1 siehe diesen Artikel 2 bezieht sich auf diesen Artikel (überwältigender Dank) In diesem Stadium, wenn etwas angemessen ist, denke ich, dass Sie von GAS twittern können.
3 Ich werde von hier aus schön schreiben Zur Zeit
//Generieren einer Instanz zur Authentifizierung
var twitter = TwitterWebService.getInstance(
'xxxx',//API Key
'xxxx'//API secret key
);
//Linkauthentifizierung von Apps
function authorize() {
twitter.authorize();
}
//Deauthorisieren
function reset() {
twitter.reset();
}
//Rückruf nach Authentifizierung
function authCallback(request) {
return twitter.authCallback(request);
}
//Retweet
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));
}
//Post
function doPost(){
var id = 'xxx';
retweet(id);
}
Es sieht aus wie das. Angenommen, 1.2. Wurde abgeschlossen Wenn Sie die entsprechende Tweet-ID (wie Sie der URL des veröffentlichten Tweet-Bildschirms entnehmen können) für 'xxx' der doPost-Funktion angeben und die doPost-Funktion ausführen, sollte sie wunderbar retweetet werden.
Machen wir es möglich, diesen ID-Teil automatisch abzurufen. Es sieht wie folgt aus.
//Überprüfen Sie, ob der Tweet innerhalb von 24 Stunden ist [Neu hinzugefügte Funktion]
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;}
}
//Holen Sie sich ein Suchwort,Gibt ein Array von Tweet-IDs zurück, die den Bedingungen entsprechen [Neu hinzugefügte Funktion]
function search(word){
if (word == "") {
return;
}
word = encodeURIComponent(word);
var url, options, response, jsonString, json, tweets = [];
//URL der Twitter-Such-API
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 = [];
//Überprüfen Sie, ob das Bild vorhanden ist
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);
}
}
//Post [Funktion, die früher etwas manipuliert wurde]
//Geben Sie ein Suchwort an und werfen Sie es in die Suchfunktion. Dann werfen Sie das resultierende Array in die Retweet-Funktion und führen es aus
function doPost(){
var nums = search('Mako Tamura');
if (nums){
nums.forEach(function(id){
retweet(id);});
}
}
Ich habe die Erklärung jeder Funktion im auskommentierten Teil geschrieben!
4 Geben Sie an dieser Stelle einfach den Auslöser an! Gehen Sie zum Trigger-Management-Bildschirm mit "Bearbeiten" -> "Trigger für aktuelles Projekt". Wählen Sie Add Trigger. Die Bedingung wird auf diese Weise gespeichert, so dass die doPost-Funktion einmal täglich ausgeführt wird.
Ich weiß also nicht wirklich, für wen der Text ist Ich werde die fehlenden Teile in Zukunft ergänzen.
GAS×TwitterBot searchAPI (Official)
Recommended Posts