Pokemon GO est enfin lancé au Japon: tada:
Étranger [Ingénierie inverse] pokemongo-android-re, [Pétrir l'API interne] pokemongo-map, Semble jouer
Peut-être à cause de cela, GitHub dispose d'un référentiel lié à Pokemon GO.
... je n'ai pas d'autre choix que de jouer avec!
Bien ** Faisons un robot Twitter qui marmonne Pokemon attrapé par Pokemon GO: exclamation :: exclamation: **
Je l'ai fait avec mes pensées
** Veuillez essayer à vos risques et périls **
3846masa/Tweet-PokemonGO-Journal
Je mettrai le code que j'ai écrit sur GitHub
https://github.com/3846masa/Tweet-PokemonGO-Journal
Quand tu le bouges, ça ressemble à ça
https://twitter.com/EBAGmasa_pokego
tejado/pgoapi
Il y avait diverses choses semblables à des bibliothèques qui pouvaient atteindre l'API, D'une manière ou d'une autre, j'ai choisi [tejado / pgoapi]
Même Dockerfile est préparé, vous pouvez donc jouer facilement
Lorsque vous attrapez un Pokémon, il sera enregistré dans le Bouken Note (nom anglais: Journal). En d'autres termes, il semble que vous n'ayez besoin que des données de ** Boken Note **
Malheureusement, il n'y avait pas d'exemple de journal dans tejado / pgoapi
Lorsque j'ai recherché une fonction, je l'ai trouvée dans [pgoapi.py # L107-L127].
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
Si vous suivez `` RequestType.Value '', Vous atteindrez [AeonLucid / POGOProtos --RequestType.proto]
La communication Pokemon GO semble utiliser Protocol Buffers
Capturons un paquet pour voir quel type de données circule réellement
Pour la capture de paquets Android, je me suis référé à [here] android-packet
Quand je l'ai capturé, ça ressemblait à ça
Si vous le regardez d'une manière ou d'une autre, vous serez intéressé par le nombre `` 801 ''.
Si vous recherchez par [AeonLucid / POGOProtos --RequestType.proto], Cela semble être `` SFIDA_ACTION_LOG ''
Si vous le comparez avec le code de tejado / pgoapi,
Je pense que je peux obtenir quelque chose avec ʻapi.sfida_action_log ()
`
(Au fait, POGOProtos dans tejado / pgoapi pour le moment est vieux, alors remplaçons-le.)
api.sfida_action_log()
Le résultat de l'exécution ressemble à ceci
{
'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
}
Fort_search '' est probablement l'information d'arrêt de poche,
catch_pokemon`` est probablement l'information capturée sur Pokemon
Tout ce que vous avez à faire est de créer un bot Twitter avec Zackri: muscle:
Ces API privées ont une forte impression de falsification du jeu, Je sens que je peux faire quelque chose d'intéressant dans le domaine de l'exploitation forestière.
Bien sûr, ** Ne mettez pas de charge sur le serveur: no_entry_sign: Mais ** N'est-il pas préférable de jouer avec?
Recommended Posts