Seite 1 von 1

TwitterBot kleine Frage beim 1. Projekt

Verfasst: Donnerstag 7. Dezember 2017, 09:34
von xconsole
Hallo zusamen,
ich bin neu in Python und benötige etwas hilfe bei einem Problem.

Mein TweetBot sendet eine Zeile per PRINT ab und alles funktioniert.
Aber wenn ich die Zeile tweeten möchte und die "#" lösche bekomme ich ein Fehlermeldung :(
:::::::::: Hier das script

Code: Alles auswählen

import time
import emoji
import random
from twython import Twython
from credentials import *
weekday = (time.strftime("%A"))
clock = (time.strftime("%H:%M:%S"))
x = random.randint(0,374)
y = random.randint(0,374)
print ("Hello "+weekday+" its "+clock+"\nx=", x ,"y=", y ,"\nLobet @systemrelewand!!!"+"\n"+(emoji.emojize(':robot_face:')))
#tweet = "Hello "+weekday+" its "+clock+"\nx=", x ,"y=", y ,"\nLobet @systemrelewand!!!"+"\n"+(emoji.emojize(':robot_face:'))
#api = Twython(apiKey,apiSecret,accessToken,accessTokenSecret)
#api.update_status(status=tweet)
#EoF
Fehlermeldung anbei:
Traceback (most recent call last):
File "testing.py", line 18, in <module> api.update_status(status=tweet)
File "C:\Users\Matthias.Kukorudz\AppData\Local\Programs\Python\Python36-32\lib\site-packages\twython\endpoints.py", line 114, in update_status
return self.post('statuses/update', params=params)
File "C:\Users\Matthias.Kukorudz\AppData\Local\Programs\Python\Python36-32\lib\site-packages\twython\api.py", line 268, in post
return self.request(endpoint, 'POST', params=params, version=version)
File "C:\Users\Matthias.Kukorudz\AppData\Local\Programs\Python\Python36-32\lib\site-packages\twython\api.py", line 258, in request
api_call=url)
File "C:\Users\Matthias.Kukorudz\AppData\Local\Programs\Python\Python36-32\lib\site-packages\twython\api.py", line 194, in _request
retry_after=response.headers.get('X-Rate-Limit-Reset'))
twython.exceptions.TwythonError: Twitter API returned a 403 (Forbidden), Missing required parameter: status.


Ich glaube es liegt an x und y die nicht "verstanden" werden.
habt ihr eine idee wie ich das kombinieren kann?

Danke und Gruß
Matthias

Re: TwitterBot kleine Frage beim 1. Projekt

Verfasst: Donnerstag 7. Dezember 2017, 10:31
von xconsole
Oder etwas kürzer beschrieben ->
ich kann zwar das

Code: Alles auswählen

print ("x=", x ,"y=", y )
aber leider geht das nicht als tweet :(

Warum?

Re: TwitterBot kleine Frage beim 1. Projekt

Verfasst: Donnerstag 7. Dezember 2017, 10:46
von Bolitho
Probiere es mal mit print(tweet) und schau dir an, was du der Variable zugewiesen hast.

Mit dem funktionierenden Print-Aufruf hast du mehrere Parameter an die Funktion übergeben.

Re: TwitterBot kleine Frage beim 1. Projekt

Verfasst: Donnerstag 7. Dezember 2017, 11:13
von xconsole
Sorry - ich habs gelöst - und x als STR ausgegeben - danke trotzdem!


p.s. gutes forum, ich werde euch wohl noch öfter nerven :(

Re: TwitterBot kleine Frage beim 1. Projekt

Verfasst: Donnerstag 7. Dezember 2017, 11:49
von Sirius3
@xconsole: `print` kann mehrere Variablen ausgeben. Du brauchst aber einen String als eine Variable.

Wenn man einer Variable etwas mit Kommas zuweist:

Code: Alles auswählen

tweet = "Hello "+weekday+" its "+clock+"\nx=", x ,"y=", y ,"\nLobet @systemrelewand!!!"+"\n"+(emoji.emojize(':robot_face:'))
bekommst Du ein sogenanntes Tuple (`print(type(tweet))` -> tuple)
Statt mit `,` oder `+` solltest Du den String mit Stringformatierung erzeugen:

Code: Alles auswählen

tweet = (
    "Hello {} its {}\n"
    "x={}, y={}\n"
    "Lobet @systemrelewand!!!\n"
    "{}").format(weekday, clock, x, y, emoji.emojize(':robot_face:'))