[JAVA] Eine Geschichte über einen Studenten, der aufgrund der SARS-CoV-2-Epidemie verschont blieb und schließlich eine Twitter-App erstellte und schließlich an die Grenzen der Twitter-API stieß.

Einführung

Wenn Sie auf ein Problem stoßen, googeln Sie doch, oder? Dieses Mal habe ich gegoogelt, als ich durch die API eingeschränkt wurde, aber es gibt nicht viele Informationen auf Japanisch, die herauskommen. .. ..

Deshalb habe ich beschlossen, diesen Artikel in der Hoffnung zu schreiben, dass er jemandem helfen würde, der in die gleiche Situation wie ich geraten ist. (** Es wird eine Schande sein, aber **) (Trotz ** gibt es einige Dinge, die ich schreiben möchte ) ( Mit anderen Worten, es gibt so viele Geschichten **)

Diese Geschichte ist ein Rekord für alle, die "** Den Ball mit Steinen aus anderen Bergen angreifen **" ausführen wollen. Ich bete, dass Sie nicht der gleichen Brunft folgen wie ich. .. ..

(** Wenn Sie nur wissen müssen, wie Sie die Einschränkungen für die Twitter-API aufheben können **, reicht es aus, nur "Zusammenfassung" zu lesen.)

März 2020

Eine neue Art von Koronavirus namens SARS-CoV-2 hat sich durchgesetzt. Ich hoffe, die Person, die dies liest, sagt "Das ist passiert" ... Aufgrund des Einflusses dieses Virus haben Schulen im ganzen Land Maßnahmen zur Schließung ergriffen.

Infolgedessen konnte ich, ein Schüler im zweiten Jahr (Schüler im dritten Jahr im Jahr 2020), auch nicht zur Schule gehen. Meine Schule ist eine selbsternannte Schule, aber ich gab keine Aufgaben und nahm die Haltung ein, "dein Bestes durch Selbststudium zu geben".

April 2020

Am 27. Februar (Stimmt das?) Forderte Premierminister Abe die landesweite Schließung von Schulen, die Frist wurde weiter verlängert und die Schulschließung auch nach April fortgesetzt. Wie erwartet schickte meine Schule auch die Aufgaben per Post, und es wurde eine Form des "Heimstudiums".

14. April 2020 Mitternacht - 15. April, frühe Morgendämmerung

Unmittelbar vor Beginn dieser Schulferien wurden einige Worte sauer im Mund und wund in den Ohren gesagt.

"** Wenn Sie ein Schüler dieser Schule sind, überprüfen Sie jeden Tag Classi und die Website der Schule !! **"

(Abgesehen davon: Die Konzentration des Zugriffs in diesen Turbulenzen und die Kombination von nicht autorisiertem Zugriff haben den Ruf des Schülers für Classi beschädigt.)

Natürlich bin ich auch ein Schüler von "dieser Schule", also lese ich diese beiden Dinge jeden Tag ohne Fehler. Aber,

**…Jep. Es ist nervig. ** ** **

Dann, plötzlich vor Sonnenaufgang am 15. (gegen 1:00 Uhr), ** erstellen wir einen Dienst, der die Website der Schule überwacht und Sie benachrichtigt, wenn sie aktualisiert wird! Ich entschied mich für **.

15. April 2020 Morgen

Ich fing sofort an, diese Idee in Form zu bringen.

"Ist es doch Java?" (← ** Fast nur Java kann verwendet werden **) "Use Gradle" (← ** Gradle verstehe ich nicht, aber es ist praktisch **) "Wenn es aktualisiert wird, damit jeder es sehen kann, wird es auf Twitter veröffentlicht" (← ** Wichtig hier **)

Während ich über verschiedene Dinge nachdachte, schaffte ich es schnell in ungefähr einer Stunde (nach meiner vagen Erinnerung). Die technischen Daten sind wie folgt: ↓

・ Unter der Annahme eines konstanten Betriebs auf dem Raspberry Pi
・ Rufen Sie alle paar Minuten die Schulwebsite auf
・ Vergleichen Sie mit den zuletzt erfassten Daten und twittern Sie, wenn sich etwas ändert

Ich habe Twitter4J-4.0.7 verwendet, um die Twitter-API aufzurufen.

Danach führten wir einen Testlauf im Nachrichtenbereich von Yahoo! JAPAN durch, erkannten Updates normal und bestätigten, dass wir twittern konnten.

15. April 2020 gegen 10:00 Uhr

Ich bin noch nicht zu Raspberry Pi gewechselt und habe den Testbetrieb für Schul-HP mit einem MacBook für die Entwicklung gestartet. Die Website der Schule wird so langsam aktualisiert, dass sie unvergleichlich langsamer ist als Yahoo! JAPAN (geschweige denn der Nachrichtenbereich). Deshalb habe ich sie für eine Weile in diesem Zustand belassen.

Zu diesem Zeitpunkt war Bots Konto gesperrt und nur ich und mein enger Freund A konnten es sehen.

15. April 2020, 15:16 Uhr

Ich habe einen Tweet mit dem Titel "Librahack gepostet. Ich mache mir darüber ein wenig Sorgen ()". Immerhin gab es kein Problem.

15. April 2020, 17:34 Uhr

** Schul-HP wurde aktualisiert! !! !! ** ** ** Ja, ich habe endlich den Operationscheck bekommen! !! Sie können auch normal twittern! !! Ich machte nach Herzenslust eine Mutpose.

15. April 2020, 19:00 Uhr

(** Ich habe vergessen, was ich getan habe **) Es scheint, dass ich in der Vergangenheit einige Wartungsarbeiten durchgeführt habe. Zusätzlich haben wir eine spielerische Funktion hinzugefügt, um Sie morgens und abends zu begrüßen ~~ nutzlos ~~.

Ich und mein Freund A haben beide die Benachrichtigung über Bot-Schmutz aktiviert, damit ich den Tweet von Bot sofort bemerken konnte, aber ich habe vergessen, ihn auszuschalten, obwohl ich Freund A hatte, der die Benachrichtigung für Wartungsarbeiten deaktiviert. Es war mit einem Bonus () Dank dessen werden viele Benachrichtigungen über Test-Tweets während der Wartung ...

15. April 2020, 21:40 Uhr

Nach Abschluss der Wartung habe ich den Bot-Schmutz entsperrt und für die ganze Welt freigegeben. Als ich mit meinem Freund A Werbung machte, folgten mir sofort viele Leute. Einige Leute sagten, es sei "kompetent". (Ich war so glücklich)

Unbekanntes Datum und Uhrzeit

Ich habe das genaue Datum und die Uhrzeit vergessen, aber ich habe wahrscheinlich die Möglichkeit hinzugefügt, die Details des Fehlers meinem Twitter-Konto zu DM hinzuzufügen, wenn im Bot hier ein Fehler auftritt **. (Richtlinie Es ist eine Geschichte, die Sie richtig lesen können. Ich möchte mich in der Vergangenheit erzählen.)

16. April 2020 gegen 16:30 Uhr

Die Schulwebsite wurde um Wartung erweitert, und ich kann vorübergehend keine Verbindung herstellen. Ich wusste nicht was ich tat ...

Der Bot hat eine "UnknownHostException" ausgelöst und von dem Fehler erfahren, als der DM kam. Bis zu diesem Zeitpunkt dachte ich: "Diese Funktion ist fantastisch!" (** Ich möchte schlagen **)

Ich wurde im Voraus über die HP informiert, dass die Wartung durchgeführt werden würde, und entschied mich, sie als "Warte eine Weile und ich werde sie reparieren" zu belassen.

16. April 2020 um 16:45 Uhr

Ich war ein wenig besorgt, weil ich immer wieder Fehler warf, also stoppte ich den Bot.

16. April 2020 16:52

Ich habe den Bot neu gestartet und bestätigt, dass er normal mit HP verbunden werden kann. Ich frage mich, warum es keine Verbindung hergestellt hat ...

16. April 2020, 17:06 Uhr

Die Zeit des Schicksals ist endlich gekommen. Ich war besorgt, ob es richtig funktioniert, also bemerkte ich es, als ich den Bot um 16:52 neu startete und das Protokoll häufig betrachtete.

**Das? Ich erhalte einen Twitter4J-Fehler ...? ** **.

403:The request is understood, but it has been refused. An accompanying error message will explain why. This code is used when requests are being denied due to update limits (https://support.twitter.com/articles/15364-about-twitter-limits-update-api-dm-and-following).
message - Application cannot perform write actions. Contact Twitter Platform Operations through https://support.twitter.com/forms/platform
code - 261

Relevant discussions can be found on the Internet at:
	http://www.google.co.jp/search?q=796590e6 or
	http://www.google.co.jp/search?q=802fbd73
TwitterException{exceptionCode=[796590e6-802fbd73], statusCode=403, message=Application cannot perform write actions. Contact Twitter Platform Operations through https://support.twitter.com/forms/platform, code=261, retryAfter=-1, rateLimitStatus=null, version=4.0.7}
	at twitter4j.HttpClientImpl.handleRequest(HttpClientImpl.java:170)
	at twitter4j.HttpClientBase.request(HttpClientBase.java:57)
	at twitter4j.HttpClientBase.post(HttpClientBase.java:86)
	at twitter4j.TwitterImpl.post(TwitterImpl.java:2138)
	at twitter4j.TwitterImpl.sendDirectMessage(TwitterImpl.java:577)
	at twitter4j.TwitterImpl.sendDirectMessage(TwitterImpl.java:611)
	at twitter4j.TwitterImpl.sendDirectMessage(TwitterImpl.java:616)

Anscheinend ist es im Stadium des Twitterns krank.

Vorerst stoppte ich Bot und war wirklich ungeduldig und dachte "** Aber ich konnte normal twittern ...? **", vorerst [Twitter Developers Apps Seite](https://developer.twitter.com/en / apps) wurde zugegriffen.

200419-0001.png

** NUR FÜR API-LESEZUGRIFF BESCHRÄNKT ** ... (Übersetzung: ** Ihre App hat Schreibbeschränkungen. Sie kann gelesen werden. **)

Du bist noch ungeduldiger. Natürlich Guguru.

screencapture-google-search-2020-04-20-13_17_35.png

Es gibt nur drei Seiten, die auf Japanisch so aussehen. Ich bin noch ungeduldiger.

Greifen Sie vorerst auf den oben angezeigten Zugriff So entsperren Sie die Twitter-Anwendung | Öffentlicher Netzdienst auf.

Anscheinend können Sie uns über Twitter API Policy Support kontaktieren.

screencapture-help-twitter-forms-platform-2020-04-20-13_24_41.png

Im Abschnitt "Details" habe ich Folgendes ausgefüllt (** Dies ist ein Bild mit einer vagen Erinnerung **) und auch andere notwendige Elemente ausgefüllt und gesendet.

Diese App ist ein Bot, der eine bestimmte Website und Tweets überwacht, wenn diese aktualisiert wird. Wenn ein Fehler auftrat, implementierte ich eine Funktion, um den Inhalt des Fehlers per DM an ein anderes Konto zu senden, das ich besitze. Da jedoch eine große Anzahl von Fehlern auftrat, wurde festgestellt, dass eine große Menge DM gesendet wurde und die Funktion Ich denke, es war eingeschränkt. In Zukunft werden wir Maßnahmen ergreifen, um das Intervall für das Senden von DM zu verlängern, um dies zu verhindern. Bitte entfernen Sie die Einschränkung.

Ja. Ich hatte eine schreckliche Vorstellung von der Ursache der Einschränkung und schickte eine Nachricht, die ich bereute.

Gehen Sie direkt zum Mail-Ordner.

** ... Kommt nichts? ** ** **

Ich habe nicht einmal die E-Mail mit der automatischen Antwort erhalten. Zurück zur vorherigen Seite von Net Zouzen-san ...

  • Möglicherweise sind Sie einige Stunden nach Ihrer Bewerbung nicht gefroren, einige Tage später sind Sie möglicherweise nicht mehr gefroren, oder Ihnen werden möglicherweise zusätzliche Fragen gestellt.

In meinem Fall wurde es ungefähr dreimal versehentlich eingefroren, aber es wurde 5 Stunden nach meiner Bewerbung abgebrochen.

** Hmm. Nun, die Leute auf Twitter arbeiten auch von zu Hause aus. Ich war davon überzeugt und beschloss, gemächlich zu warten.

16. April 2020 gegen 20:00 Uhr

** Sie können nicht twittern, sondern lokal für sich selbst ausführen! Ich dachte ** und versuchte es zu starten,

** Bot "Unbekannte HostException" **

Ich habe gerade das Limit erreicht, aber jetzt kann ich keine Verbindung zur Schulwebsite herstellen. Dies ist genau ** eine Biene auf einem weinenden Gesicht **.

Versuchen Sie, mit Chrome auf Ihrem MacBook darauf zuzugreifen. ... du kannst es sehen. Stellen Sie mit ssh eine Verbindung zu Raspberry Pi her und pingen Sie die HP der Schule an. … Unbekannter Host. Pingen Sie auf Ihrem MacBook. … Unbekannter Host.

Was ist hier in meinem Kopf? ?? ?? ist geworden. Warum kann ich es nicht in Chrome sehen und pingen?

**… Vielleicht der Browser-Cache? ** **.

Flash, lösche den gesamten Cache von Chrome → Zugriff im geheimen Modus.

200420-0002.png

DNS_PROBE_FINISHED_NXDOMAIN…?? Anscheinend ist etwas passiert, als der Name mit DNS aufgelöst wurde.

~ Zeit für Versuch und Irrtum nach der Erforschung verschiedener Dinge ~

… Gelöst. Anscheinend ist etwas um das DNS herum passiert, da die Wartung am 16. April gegen 16:30 Uhr in die HP der Schule einging und der DNS-Cache des Routers (von dem "192.168.11.1") veraltet war. Nachdem ich Google Public DNS (8.8.8.8) verwendet habe, kann ich mich normal verbinden.

(** Entschuldigung, dass ich vom Hauptthema durcheinander bin **)

17. April 2020 um 0:20 Uhr

Ich verwende ein MacBook mit einem SSH-Client und kann keine Verbindung zwischen "MacBook - Himbeer Pi" herstellen.

Hier ist mein Tweet zu diesem Zeitpunkt.

um die Sache noch schlimmer zu machen, 卍 nicht mehr mit Saba verbunden

Es ist seltsam wegen der nächtlichen Anspannung und zwei Bienen im weinenden Gesicht, aber keine Sorge.

Da der Netzwerkbereich spärlich ist, habe ich mich empört, um die Stromversorgung von Raspberry Pi auszuschalten und Raspbian neu zu installieren. (Das Schöne an Raspberry Pi ist, dass Sie dies leicht tun können.)

17. April 2020 gegen 17:00 Uhr

Da das MacBook --Raspberry Pi tot war, ging ich wieder zu ** Empörung **.

Übrigens, nachdem die Probleme rund um DNS am 16. April geklärt wurden Bot lokal verschieben → Manuell auf Twitter posten, wenn Aktualisierungen anhand des Protokolls erkannt werden Ich arbeitete weiter mit diesem Gefühl.

Es ist ein Tag her, seit ich beantragt habe, die Beschränkungen aufzuheben, aber ich habe keine einzige E-Mail erhalten, geschweige denn die Beschränkungen aufgehoben. ** **.

19. April 2020 0:13

Zwei Tage nach der Anwendung war kein Ton zu hören, und ich war völlig gelähmt. Daher entschied ich mich, mich erneut über Twitter API Policy Support an mich zu wenden.

** Allerdings auf Englisch. ** **.

Erinnerst du dich, als du dich für Twitter Developer angemeldet hast, wurde es in Englisch geschrieben? Daran erinnernd, ** Vielleicht sind die Entwickler auf Englisch beschränkt? .. Ich machte mir Sorgen um **, also nutzte ich die Fähigkeit von ~~ ** Eiken 2. Klasse, GER B1 ** ~~ (Es ist eine Lüge DeepL Ich habe das Detailfeld auf Englisch eingegeben und gesendet.

I sent the same message in Japanese a few days ago, but I would like to send it in English as well, just in case. I apologize for the duplication. Diese App ist ein Bot, der eine bestimmte Website und Tweets überwacht, wenn ein Update erkannt wird. Ich hatte eine Funktion implementiert, um einen DM an ein anderes Konto (@Benutzername) zu senden, wenn ein Fehler auftritt, jedoch aufgrund der großen Anzahl von Fehlern Ich denke, es wurde beurteilt, dass dieser Bot eine große Anzahl von DMs gesendet hat und eingeschränkt war. Um dies in Zukunft zu verhindern, habe ich diese Funktion entfernt. Bitte entfernen Sie die Einschränkung. Thank you.

Gehen Sie direkt zu Ihrem E-Mail-Ordner.

Hello,

Thanks for reaching out. Your app has been restricted or suspended due to one or more violations of our Developer Agreement and Policy,AutomationRules,DisplayRequirementsand/orTwitterRules. Common reasons for this happening include:

・ Benutzer, die über Ihre App gepostete Inhalte als Spam melden (Tweets, RTs, Favoriten, DMs usw.) ・ Missbräuchliche Verwendung von Automatisierungen, z. B. automatische Verfolgung / Nichtverfolgung ・ Verdächtige API-Nutzung, z. B. wiederholtes Erreichen von Ratenlimits ・ Zeigen Sie Verstöße an, wie Sie Tweets anzeigen müssen

This list is not exhaustive, so review our policy documentation to ensure that your app and your app’s users are following all of our rules.

Please respond to this email if you need further clarification, but note that we will only consider a request to lift this restriction after you provide us with the following information:

・ App ID und Consumer Key ・ Link zu und Anweisungen zum Anmelden bei Ihrer App, um die Konformität zu überprüfen ・ Eine Liste spezifischer Änderungen, die Sie vorgenommen haben, um die Nichteinhaltung von Richtlinien zu beheben

We will not respond to requests to lift restrictions that do not include this information.

Regards,

Twitter Platform Operations

** Automatische Antwort kam! !! !! !! ** **.

Zu diesem Zeitpunkt bin ich schon aufgeregt. ** Auf einer Ebene, auf der das Grinsen nicht aufhört. ** ** ** Ich weiß jedoch nicht, was Twitter sagt, also ** Übersetzung **.

Danke, dass Sie mich kontaktiert haben. Ich habe es eingeschränkt, weil Ihre App gegen einige Regeln verstoßen hat. Es scheint, dass es zu solchen Zeiten oft eingeschränkt ist.

・ Wenn jemand diese App als Spam meldet ・ Wenn Sie die Automatisierung missbrauchen, z. B. automatisch folgen oder nicht folgen ・ Wenn Sie mehrmals im API-Limit stecken bleiben ・ Wenn Sie gegen die Regeln zum Anzeigen von Tweets in Ihrem eigenen Web verstoßen

Gründe für die Einschränkung Dies ist nicht der einzige Grund. Überlegen Sie genau, was Sie getan haben.

Wenn Sie Fragen haben, antworten Sie bitte auf diese E-Mail. Wenn wir diese Informationen jedoch nicht weitergeben, werden wir die Beschränkungen nicht aufheben.

・ App ID und Consumer Key ・ So melden Sie sich bei der App an ・ Was wurde geändert, um nicht eingeschränkt zu werden

Bitte beachten Sie, dass wir nicht auf E-Mails antworten, in denen diese Personen nicht enthalten sind, z. B. "Bitte heben Sie die Einschränkungen auf."

Von Leuten auf Twitter

**… Ich bin froh, dass ich so viel in die Spalte "Details" geschrieben habe! !! ** ** **

Also werde ich Ihnen das, was ich in der Detailspalte geschrieben habe, fast so schicken, wie es ist. (Ich habe kopiert und gespeichert, was ich geschrieben habe, nur für den Fall)

Hello. I'm Japanese, so I'm not good at English. I apologize for it.

・ App ID und Consumer Key App ID: < App ID > Consumer Key: < Consumer Key >

・ Link zu und Anweisungen zum Anmelden bei Ihrer App, um die Konformität zu überprüfen This app has no website. It just tweets. Mein Profil lautet:

・ Eine Liste spezifischer Änderungen, die Sie vorgenommen haben, um die Nichteinhaltung von Richtlinien zu beheben Ich hatte eine Funktion implementiert, um einen DM an ein anderes Konto zu senden, das ich besitze (@Benutzername), wenn ein Fehler auftritt. Aufgrund der großen Anzahl von Fehlern wurde jedoch festgestellt, dass dieser Bot eine große Anzahl von DMs gesendet hat und eingeschränkt war Um dies in Zukunft zu verhindern, habe ich diese Funktion entfernt.

Sincerely,

… Huh.

19. April 2020 um 14:10 Uhr

Seitdem Bot lokal verschieben → Manuell auf Twitter posten, wenn Aktualisierungen anhand des Protokolls erkannt werden Ich habe es so weiter betrieben, aber es ist schwer, die Protokolle sorgfältig zu sehen.

Also habe ich beschlossen, es als Discord Bot auszuführen, bis die Schreibbeschränkung aufgehoben wurde.

Ich habe JDA-4.0.0_39 verwendet, um die Discord-API aufzurufen, und die Implementierung wurde in wenigen Stunden abgeschlossen.

21. April 2020 gegen 12:00 Uhr

Bis zu diesem Punkt werden Twitter (obwohl immer noch eingeschränkt) und Discord unterstützt, aber aus irgendeinem Grund möchte ich auch LINE unterstützen. Nachdem ich ein bisschen gesucht hatte, fand ich etwas namens LINE Messaging API SDK für Java, also implementierte ich es in ungefähr einer Stunde.

Ich habe übrigens noch keine Antwort von Twitter erhalten.

4. Juni 2020, 7:50 Uhr

Ja, ungefähr anderthalb Monate nachdem ich auf die E-Mail geantwortet hatte, erhielt ich heute Morgen endlich eine Antwort von Twitter.

Hallo @ Benutzername,

Thank you for reaching out. We have reviewed your request and have reactivated your API key. Going forward, carefully ensure that your application adheres to Twitter’s policies:

Entwicklervereinbarung und -richtlinie

Automatisierungsregeln

Twitter-Regeln

Please note, applications found to be violating policy again may be subject to permanent suspension.

Regards,

Twitter Platform Operations

↓ Übersetzt.

@Username, Chiss.

Danke, dass Sie mich kontaktiert haben. Ich habe gelesen, was Sie gesagt haben, und die API-Einschränkungen aufgehoben. Was ich tun möchte, indem ich diese Regel richtig einhalte.

Entwicklervereinbarung und -richtlinie

Automatisierungsregeln

Twitter-Regeln

Beachten Sie, dass Sie dieses Konto möglicherweise für immer verwenden können, wenn Sie in Zukunft erneut gegen die Richtlinie verstoßen.

Dann.

Twitter Platform Operations

** Okay! !! ** ** ** Dieses ↓, das auf der Twitter Developers Apps-Seite angezeigt wurde, ist ebenfalls verschwunden.

200419-0001.png

Danach habe ich die Einstellung so geändert, dass Bot twitterte, und ich konnte bestätigen, dass ich fest twittern konnte. Damit endete die Schlacht von "I VS Twitter". .. ..

Zusammenfassung

Was tun, wenn Sie durch die Twitter-API eingeschränkt sind?

screencapture-help-twitter-forms-platform-2020-04-20-13_24_41.png

--Überprüfen Sie, ob eine automatische Antwort eingeht, und interagieren Sie dann mit Personen auf Twitter. **Auf Englisch. ** **.

Andere Lektionen

** ・ Lesen Sie die Richtlinien richtig ** ** ・ Verwenden Sie die DM-Funktion nur, wenn etwas schief geht ** ** ・ Die Welt der Programmierer sollte als grundlegendes Englisch anerkannt werden **

Seite, für die gesorgt wurde

So entsperren Sie die Twitter-Anwendung | Net public serviceSo entsperren Sie die Twitter-Anwendung | 56stationTwitter API Schreibberechtigung eingefroren Sommer 2019 --QiitaDie Geschichte von 7 Tagen unangenehmen Neujahrs aufgrund des Einfrierens des Twitter-Kontos und der Apps - Qiita

Recommended Posts

Eine Geschichte über einen Studenten, der aufgrund der SARS-CoV-2-Epidemie verschont blieb und schließlich eine Twitter-App erstellte und schließlich an die Grenzen der Twitter-API stieß.
Eine Geschichte über das Erreichen der League Of Legends-API mit JAVA
Die Geschichte, zu vergessen, eine Datei in Java zu schließen und zu scheitern
Eine Geschichte, der ich beim Testen der API mit MockMVC verfallen war
Implementieren wir eine Funktion, um die Anzahl der Zugriffe auf die API mit SpringBoot + Redis zu begrenzen