Partage
  • Partager sur Facebook
  • Partager sur Twitter

Récupérer les messages Discord vers mon site web

    24 mars 2021 à 12:05:50

    Bonjour,

    j'ai actuellement une plateforme en Python/Django ainsi qu'une communauté Discord. Je souhaiterais récupérer les messages d'un channel pour les convertir en notifications sur le site.

    Évidemment j'ai consulté la doc de Discord mais j'ai vraiment du mal à comprendre. Je ne souhaite pas créer un bot pour cette simple action, à priori en passant par l'app OAuth avec les scopes "messages.read" se serait faisable. 

    J'arrive actuellement à générer mon token :

    def discord_get_token():
      data = {
        'client_id':DISCORD_CLIENT_ID,
        'client_secret':DISCORD_PRIVATE_KEY,
        'grant_type': 'client_credentials',
        'redirect_uri': 'http://127.0.0.1:8000',
        'scope': 'identify connections messages.read'
      }
      headers = {
        'Content-Type': 'application/x-www-form-urlencoded'
      }
      r = requests.post('%s/oauth2/token' % DISCORD_BASE_URI, data=data, headers=headers)
      r.raise_for_status()
    
      #Token
      print(r.json()['access_token'])
      return r.json()['access_token']


    Puis l'appel aux messages avec la route suivante /channels/{channel.id}/messages 

    def get_channel_messages(id_channel):
      route = "/channels/"+ str(id_channel) +"/messages"
      data,error_message = request_discord('GET',route)
      
      print(data)
    
    def request_discord(method,url_access,body={}):
        data =''
        #Call token
        error_message = ''
        access_token = discord_get_token()
    
        #Call request
        headers = {'Content-Type':'application/json','Authorization':'bearer ' + access_token}
    
        body = body
        if method=="GET":
            result = requests.get(DISCORD_BASE_URI + url_access, headers=headers,data=body)
        else:
            result = requests.post(DISCORD_BASE_URI + url_access, headers=headers,data=body)
    
        #Check result
        if result.status_code != 200 and result.status_code != 201:
            error_message = "Impossible de d'obtenir un resultat erreur: " + str(result.status_code)
        else:
            data = result.json()
    
        return data,error_message



    Une erreur 401 est retournée.

    Contrairement à la plupart des API on génère notre token et on fait l'appel aux requêtes. je constate que Discord a un fonctionnement un peu différent. 

    Qu'est ce qu'il me manque comme étapes ? Suis-je obligé de passer par un bot ? Suis-je obligé d'effectué une autorisation manuelle avec l' OAuth2 URL Generator à chaque fois ?

    Merci pour vos réponses ! 

    -
    Edité par Camille Colvray 24 mars 2021 à 12:20:00

    • Partager sur Facebook
    • Partager sur Twitter

    Récupérer les messages Discord vers mon site web

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown