Beans-API Codebeispiele

Hallo Beans-Community,
Da ich im Moment den TelegramBeansBot für die unsere Community-Gruppe Programmiere und ich mangels Dokumentation Probleme hatte die Offizielle API zu nutzen, möchte ich meinen Code dafür hier als Beispiel veröffentlichen.
Desweiteren hab ich noch 2 Codebeispiele für andere Programmiersprachen zusammengetragen:
Danke dafür an die jeweiligen Entwickler!

  • C# - https://github.com/Dakor91/RocketbeansTV-PIP/blob/master/RocketbeansTV-PIP/FormSendeplan.cs
  • node.js - https://gist.github.com/BakeRolls/453d0b352747199a1c98

Hier mein Beispiel in Python

def getpanapijson(baseurl='http://api.rocketmgmt.de/', endpoint='schedule', key=None, secret=None):    
    url = baseurl + endpoint    
    req = urllib2.Request(url)
    req.headers.clear()
    req.add_header('Accept', 'application/json')    
    
    req.add_header("Authorization", "WSSE profile=\"UsernameToken\"")
    rb_id = '00000000-0000-0000-0000-000000000000'
    # 2 Minuten weniger da es vorgekommen ist das die Auth. fehlgeschlagen ist, da für den Beansserver der Zeitpunkt in der Zukunft lag.
    rb_created = (datetime.utcnow() - timedelta(minutes=2)).strftime("%Y-%m-%dT%H:%M:%S+0000") 
    nonce = rb_id + rb_created + randstr_generator(10)
    sha1 = hashlib.sha1(nonce + rb_created + secret)        
    req.add_header('X-WSSE', "UsernameToken Username=\"" + key + "\", PasswordDigest=\"" + base64.b64encode(sha1.hexdigest()) + "\", Nonce=\"" + base64.b64encode(nonce) + "\", Created=\"" + rb_created + "\"")

    # URL aufrufen
        try:
            resp = urllib2.urlopen(req)
            response = resp.read()
        except Exception as e:
            print e
            return None    
        # Json Parsen
        return json.loads(str(response.decode("utf-8")))
# ------------------------------
# RandomStringfunktion
def randstr_generator(size=6, chars=string.ascii_lowercase + string.digits):
    return ''.join(random.choice(chars) for _ in range(size))

Benötigte Imports

import urllib2 from datetime import datetime from datetime import timedelta import hashlib import base64 import random import json import string

Habe hier noch ein Sample aus meiner RBTV Fire TV App.

Geschrieben in Java:
https://github.com/EZTEQ/rbtv-firetv/blob/master/app/src/main/java/de/markhaehnel/rbtv/rocketbeanstv/GetScheduleTask.java

Grüsse,
Mark

1 „Gefällt mir“

Hab auch mal aus meinem code ein package gemacht.
Ist für node.js und ein wrapper um got.