Créons un client de socket Web avec Python. (Authentification par jeton d'accès)

J'ai eu la chance de jouer avec l'API de l'application Typetalk de nulab (https://developer.nulab-inc.com/ja/docs/typetalk), j'ai donc implémenté websocket. Notez que je ne l'ai jamais fait avec python

Environnement de développement

MaxOSX 10.10.3 Python 2.7.9

Installation

Installez les packages requis avec python

pip install websocket-client

Pour installer le client websocket de python.

implémentation de websocket

Cette fois, puisque nous avons utilisé Typetalk, nous allons présenter comment obtenir un jeton d'accès à partir de type talk et définir websocketclient. Ce code vous permet de voir tout le comportement des utilisateurs enregistrés.

main.py


#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os
import sys
import urllib
import urllib2
import json
import string

import websocket
import requests

class TypeTalkSample:
    access_token = None

    def __init__(self):
    	#Obtenez un jeton d'accès de typetalk
        client_id = "xxxxxxx"
        client_secret = "xxxxxxx"
        params = {
            'client_id': client_id,
            'client_secret': client_secret,
            'grant_type': 'client_credentials',
            'scope': 'topic.read,topic.post',
        }
        data = urllib.urlencode(params)
        res = urllib2.urlopen(urllib2.Request('https://typetalk.in/oauth2/access_token', data))
        
        #Tenir le jeton d'accès
        self.access_token = json.load(res)['access_token']

		#Définissez un websocket. Vous pouvez définir un websocket à l'aide d'un jeton d'accès en enregistrant une autorisation dans l'en-tête ici.
        websocket.enableTrace(True)
        ws = websocket.WebSocketApp("wss://typetalk.in/api/v1/streaming", header=["Authorization: Bearer %s" % self.access_token], on_open=self.on_open, on_message=self.on_message, on_error=self.on_error, on_close=self.on_close)
        
        #Démarrez websocket. Ctrl+Assurez-vous qu'il se termine par C.
        try:
            ws.run_forever()
        except KeyboardInterrupt:
            ws.close()

	#La méthode définie ici devient la fonction de rappel de websocket.
	#Lors de la réception d'un message
    def on_message(self, ws, message):
        print message

	#Lorsqu'une erreur survient
    def on_error(self, ws, error):
        print error

	#Lorsque vous fermez le socket Web
    def on_close(self, ws):
        print 'disconnected streaming server'

	#Lorsque vous ouvrez le socket Web
    def on_open(self, ws):
        print 'connected streaming server'


if __name__ == "__main__":
    typetalk = TypeTalkSample()

Lien

Typetalk api (https://developer.nulab-inc.com/ja/docs/typetalk)

Recommended Posts

Créons un client de socket Web avec Python. (Authentification par jeton d'accès)
Faisons une interface graphique avec python.
Faisons un graphe avec python! !!
Faisons un jeu de shiritori avec Python
Faisons la voix lentement avec Python
Créez un framework Web avec Python! (1)
Faisons un bot Twitter avec Python!
Créez un framework Web avec Python! (2)
Faisons une discussion WEB en utilisant WebSocket avec AWS sans serveur (Python)!
Remplaçons UWSC par Python (5) Faisons un robot
Accéder à un site avec l'authentification par certificat client avec les demandes
Faites une loterie avec Python
[Jouons avec Python] Créer un livre de comptes de ménage
Essayez de créer un jeu simple avec Python 3 et iPhone
[Super facile] Faisons un LINE BOT avec Python.
Faisons une rupture de bloc avec wxPython
Créer un système de recommandation avec python
Faisons un spacon avec xCAT
Créons un groupe gratuit avec Python
Faisons un langage simple avec PLY 1
[Python] Rendons matplotlib compatible avec le japonais
Ecrire un client TCP avec Python Twisted
"Première recherche élastique" commençant par un client python
Faisons une IA à trois yeux avec Pylearn 2
Faisons un calcul de combinaison avec Python
Créez une application de bureau avec Python avec Electron
[Ev3dev] Faisons un programme de contrôle à distance par Python avec le protocole RPyC
Créer un bot Twitter Trend avec heroku + Python
Je veux faire un jeu avec Python
Essayez de créer un code de "décryptage" en Python
Essayez de créer un groupe de dièdre avec Python
[Chat De Tornado] Créez un chat en utilisant WebSocket dans Tornado
Faisons un module pour Python en utilisant SWIG
Faisons une application qui affaiblit les nerfs avec Vue.js et Django-Rest-Framework [Partie 6] ~ Authentification utilisateur 2 ~
Faisons une application qui affaiblit les nerfs avec Vue.js et Django-Rest-Framework [Partie 5] ~ Authentification des utilisateurs ~
Si vous voulez créer un bot discord avec python, utilisons un framework
WebSocket avec Python + uWSGI
Combinez des chaînes répétitives en une seule avec des expressions régulières Python.
Faisons un outil de veille de commande avec python
[Pratique] Créez une application Watson avec Python! # 2 [Fonction de traduction]
[Pratique] Créez une application Watson avec Python! # 1 [Discrimination linguistique]
Créez un Slackbot simple avec un bouton interactif en python
Faire un point d'arrêt sur la couche c avec python
Facilitons un peu la gestion des dépendances avec pip
[Pour jouer] Essayez de faire de Yuma un robot LINE (Python)
Créer un outil de formatage CSV avec Python Pandas Py Installer
Créons une application Mac avec Tkinter et py2app
Essayez de créer une grille sphérique avec Rhinoceros / Grasshopper / GHPython
Qu'est-ce que Dieu? Créez un chatbot simple avec python
[Piyopiyokai # 1] Jouons avec Lambda: création d'un script Python
[Pratique] Créez une application Watson avec Python! # 3 [Classification du langage naturel]
Faisons un robot Discord.
Authentification BASIC avec bouteille Python
Associez Python Enum à une fonction pour la rendre appelable
Créons un script qui s'enregistre avec Ideone.com en Python.
Expérimentez pour créer un PDF indépendant pour Kindle avec Python
Créons un diagramme PRML avec Python, Numpy et matplotlib.
Faisons Othello avec wxPython