[PYTHON] Ich habe einen Twitter-Bot erstellt, der das von #PokemonGO gefangene Pokemon murmelt

Vorwort

Pokemon GO ist endlich in Japan gestartet: tada:

Übersee [Reverse Engineering] pokemongo-android-re, [Interne API kneten] pokemongo-map, Scheint zu spielen

Vielleicht hat GitHub deshalb ein Repository, das sich auf Pokemon GO bezieht.

... Ich habe keine andere Wahl, als damit herumzuspielen!

In Ordung ** Machen wir einen Twitter-Bot, der Pokemon murmelt, das von Pokemon GO gefangen wurde: Ausruf :: Ausruf: **

Ich habe es mit meinen Gedanken geschafft

** Bitte versuchen Sie es auf eigenes Risiko **

3846masa/Tweet-PokemonGO-Journal

Ich werde den Code, den ich geschrieben habe, auf GitHub setzen

https://github.com/3846masa/Tweet-PokemonGO-Journal

Wenn Sie es bewegen, sieht es so aus

https://twitter.com/EBAGmasa_pokego

tejado/pgoapi

Es gab verschiedene bibliotheksähnliche Dinge, die die API treffen konnten. Irgendwie habe ich [tejado / pgoapi] gewählt

Sogar Dockerfile ist vorbereitet, so dass Sie leicht spielen können

Politik

Wenn Sie ein Pokémon fangen, wird es in der Bouken Note (englischer Name: Journal) aufgezeichnet. Mit anderen Worten, es scheint, dass Sie nur die Daten von ** Boken Note ** abrufen müssen.

Boken Note

Leider gab es in tejado / pgoapi kein Journalbeispiel

Bei der Suche nach Funktionen habe ich [pgoapi.py # L107-L127] gefunden.

def __getattr__(self, func):
    def function(**kwargs):
    
        if not self._req_method_list:
            self.log.info('Create new request...')
    
        name = func.upper()
        if kwargs:
            self._req_method_list.append( { RequestType.Value(name): kwargs } )
            self.log.info("Adding '%s' to RPC request including arguments", name)
            self.log.debug("Arguments of '%s': \n\r%s", name, kwargs)
        else:
            self._req_method_list.append( RequestType.Value(name) )
            self.log.info("Adding '%s' to RPC request", name)

        return self

    if func.upper() in RequestType.keys():
        return function
    else:
        raise AttributeError

Wenn Sie RequestType.Value folgen, Sie erreichen [AeonLucid / POGOProtos --RequestType.proto]

Die Pokemon GO-Kommunikation scheint [Protokollpuffer] zu verwenden.

Lassen Sie uns ein Paket erfassen, um zu sehen, welche Art von Daten tatsächlich fließen

Paketerfassung

Für die Android-Paketerfassung habe ich auf [hier] [Android-Paket] verwiesen.

Als ich es aufgenommen habe, sah es so aus

Wenn Sie es irgendwie betrachten, werden Sie an der Nummer "801" interessiert sein.

Wenn Sie nach [AeonLucid / POGOProtos --RequestType.proto] suchen, Es scheint "SFIDA_ACTION_LOG" zu sein

Wenn Sie es mit dem Code von tejado / pgoapi vergleichen, Ich denke, ich kann etwas mit api.sfida_action_log () bekommen

(Übrigens, POGOProtos in tejado / pgoapi ist im Moment alt, also lasst es uns ersetzen.)

api.sfida_action_log()

Das Ausführungsergebnis sieht so aus

{
  'api_url': ...,
  'auth_ticket': { ... },
  'request_id': ...,
  'responses': {
    'SFIDA_ACTION_LOG': {
      'log_entries': [{
        'catch_pokemon': {
          'combat_points': 156,
          'pokemon_id': 114,
          'result': 1
        },
        'timestamp_ms': 1469169999498
      }, {
        'fort_search': {
          'items': [{
            'count': 3,
            'item_id': 1
          }],
          'result': 1
        },
        'timestamp_ms': 1469233607913
      }],
      'result': 1
    }
  },
  'status_code': 2
}

Wahrscheinlich ist fort_search die Pocket Stop Information, catch_pokemon ist wahrscheinlich die erfasste Pokemon-Information

Alles was Sie tun müssen, ist einen Twitter-Bot mit Zackri zu erstellen: Muskel:

abschließend

Diese privaten APIs haben einen starken Eindruck von Manipulationen am Spiel. Ich habe das Gefühl, dass ich im Bereich der Protokollierung etwas Interessantes tun kann.

Natürlich ** Den Server nicht belasten: no_entry_sign: Aber ** Ist es nicht besser, einfach damit herumzuspielen?

Recommended Posts

Ich habe einen Twitter-Bot erstellt, der das von #PokemonGO gefangene Pokemon murmelt
Ich habe einen Twitter BOT mit GAE (Python) gemacht (mit einer Referenz)
Ich habe einen Zwietrachtbot gemacht
Ich habe einen Wikipedia Gacha Bot gemacht
Ich habe einen Twitter-Bot mit Go x Qiita API x Lambda erstellt
Ich habe einen schlaffen Bot gemacht, der mich über die Temperatur informiert
Ich habe einen Discord-Chat-Lesebot erstellt, indem ich das Erscheinungsbild nachgeahmt habe
Erstellen Sie einen Bot, der Twitter-Trends verstärkt
Ich habe in Python einen Discord-Bot erstellt, der übersetzt, wenn er reagiert
Ich habe einen Bot erstellt, um ihn auf Twitter zu posten, indem ich mit AWS Lambda eine dynamische Site im Internet abgekratzt habe (Fortsetzung).
Ich habe einen Stempelersatzbot mit Linie gemacht
Ich habe versucht, mit Python einen Twitter-Blocker für faule Mädchen zu machen
Ich habe einen LINE Bot mit Serverless Framework erstellt!
Mattermost Bot mit Python gemacht (+ Flask)
Ich habe einen LINE BOT erstellt, der mithilfe der Flickr-API ein Bild von Reis-Terroristen zurückgibt
Ein Memo, auf das ich gestoßen bin, als ich ein Zitat RT auf Twitter Bot gemacht habe
Ich habe einen Zeilenbot erstellt, der Python verwendet, um ungelesene E-Mails aus Google Mail abzurufen!
Ich habe einen LINE-Bot erstellt, der jeden Tag pünktlich empfohlene Bilder sendet
[Python] Ich habe einen LINE-Bot erstellt, der Gesichter erkennt und Mosaikverarbeitungen durchführt.
[Bot dekodieren] Ich habe versucht, einen Bot zu erstellen, der mir den Rassenwert von Pokemon angibt
In Python habe ich einen LINE-Bot erstellt, der Polleninformationen aus Standortinformationen sendet.
Ich habe eine Twitter-App erstellt, die die Zeichen der Vorverbindung mit Heroku entschlüsselt (Fehler).
[AWS] Ich habe BOT mit LINE WORKS daran erinnert
Ich habe versucht, LINE BOT mit Python und Heroku zu machen
Ich habe ein System erstellt, mit dem Sie nur durch einen Anruf twittern können
Eine Geschichte, die stolperte, als ich mit Transformer einen Chat-Chat-Bot erstellte
Ich habe eine verdammte App gemacht, mit der du nicht überspringen kannst
Ich habe einen harten Pomodoro-Timer entwickelt, der mit CUI funktioniert
Als ich einen Discord Bot gemacht habe, haben meine Klassenkameraden meinen Computer zerstört
Ich habe ein Plug-In erstellt, das "Daruma-san Fell" mit Minecraft ausführen kann
Ich habe einen neuronalen Netzwerkgenerator erstellt, der auf FPGA läuft
[AWS] Ich habe BOT mit LINE WORKS (Implementierung) in Erinnerung gerufen.
Ich habe einen Python-Text gemacht
Ich habe einen Linienbot erstellt, der das Geschlecht und das Alter einer Person anhand des Bildes errät
Ich habe eine einfache Netzwerkkamera hergestellt, indem ich ESP32-CAM und RTSP kombiniert habe.
Ich habe ein Programm erstellt, das die Fehlersuche in Sekunden löst
Ich habe ein Shuffle gemacht, das mit Python zurückgesetzt (zurückgesetzt) werden kann
Ich habe einen lo-Befehl erstellt, der nützlicher ist als ls
Ich habe mit Heroku + Flask + PostgreSQL (Heroku Postgres) einen LINE-Bot erstellt, der mir den Typ und die Stärke von Pokemon in der Garal-Region angibt.
Ich habe ein Programm erstellt, das den Tierkreis mit tkinter automatisch berechnet
[Python] Ich habe eine Klasse erstellt, die schnell einen Dateibaum schreiben kann
Da ich zu verschiedenen Zeiten anfing zu arbeiten, machte ich einen Bot, der mir die Zeit sagt, die Arbeit zu verlassen
[Python] Ich habe einen Bot erstellt, der mir die aktuelle Temperatur anzeigt, wenn ich einen Ortsnamen in LINE eingebe
Ich habe eine C ++ - Lernseite erstellt
Ich habe einen Line-Bot mit Python gemacht!
Ich habe ein CUI-basiertes Übersetzungsskript erstellt (2)
Ich habe mit Python eine Lotterie gemacht.
Ich habe mit Python einen Daemon erstellt
Ich habe einen Kalender erstellt, der den Verteilungsplan von Vtuber automatisch aktualisiert
[Python] Ich habe einen Dekorateur gemacht, der keinen Nutzen zu haben scheint.
Ich habe eine Webanwendung in Python erstellt, die Markdown in HTML konvertiert
[Python] Ich habe einen Twitter-Bot erstellt, der freundschaftliche Tweets mit Markov-Kettenregeln generiert.
Ich habe ein Plug-In "EZPrinter" erstellt, das Karten-PDF mit QGIS einfach ausgibt.
[Python] Ich habe ein Dienstprogramm erstellt, das wie ein Pfad auf den Diktattyp zugreifen kann
Ich habe ein Programm erstellt, um Sie per LINE zu benachrichtigen, wenn Schalter eintreffen
Ich habe eine Chrome-Erweiterung erstellt, die ein Diagramm auf der Amedas-Seite anzeigt
Ich habe einen einfachen Timer erstellt, der vom Terminal aus gestartet werden kann