[Memo] Tweet auf Twitter mit Python

Ich habe mit Python 2.7 und Python-Twitter richtig auf Twitter getwittert In einigen Fällen müssen Sie möglicherweise auch oauth2 installieren

Installieren Sie zur Vorbereitung die Bibliothek entsprechend mit `` `pip install twitter oauth2```

Abrufen von Kundeninformationen auf der Entwicklerseite

Ohne ist es in Ordnung, aber erstellen Sie eine XML-Datei zum Einstellen

So was

Einstellungsdatei

config.xml


<?xml version="1.0" ?>
<config>
    <consumer_key>Twitter Client Consumer Key</consumer_key>
    <consumer_secret>Twitter-Client Verbraucher_SecretKey</consumer_secret>
</config>

Schreiben Sie ein Skript zur Authentifizierung Wenn Sie in der vorherigen Phase keine XML-Datei erstellt haben, werden Sie beim ersten Start gefragt Wenn Sie einen Fehler auslösen, fehlt die Bibliothek oder die XML ist falsch. Löschen oder schreiben Sie sie daher neu.

Oauth-Authentifizierungsdatei

oauthing.py


import oauth2,urlparse
import webbrowser
import os
import xml.etree.ElementTree as XML
from xml.dom import minidom


#Parser
def pretty(elem):
    rough_string = XML.tostring(elem,'utf-8')
    reparsed = minidom.parseString(rough_string)
    return reparsed.toprettyxml(indent='    ')

#Speicherziel
CONSUMER_KEY        = ''
CONSUMER_SECLET     = ''

#Konfigurieren Sie den zu lesenden Dateinamen
CONFIG_FILE = 'config.xml'

#Existenzprüfung
if os.path.isfile(CONFIG_FILE):
    # read consumerkey as config.xml
    tree = XML.parse(CONFIG_FILE)
    root = tree.getroot()
    CONSUMER_KEY = root.find('.//consumer_key').text
    CONSUMER_SECLET = root.find('.//consumer_secret').text

else:
    # read input as write file
   top = XML.Element('config')
   con_key = XML.SubElement(top,'consumer_key')
   print 'request Consumer Key ? '
   con_key.text = raw_input()
   CONSUMER_KEY = con_key.text
   con_secret = XML.SubElement(top,'consumer_secret')
   print 'request Consumer Secret Key ? '
   con_secret.text = raw_input()
   CONSUMER_SECLET = con_secret.text
   with open(CONFIG_FILE,'w') as f:
       f.write(pretty(top))

consumer = oauth2.Consumer(key='{0}'.format(CONSUMER_KEY),secret='{0}'.format(CONSUMER_SECLET))
client = oauth2.Client(consumer)

resp,content = client.request('https://api.twitter.com/oauth/request_token','GET')

d = dict(urlparse.parse_qsl(content) )

url ='https://api.twitter.com/oauth/authorize?oauth_token={0}'.format(d['oauth_token'])
webbrowser.open(url)

#PIN-Authentifizierung mit dem Browser hier
print 'request pin'
pin = raw_input()

token =  oauth2.Token(d['oauth_token'],d['oauth_token_secret'] )
client = oauth2.Client(consumer,token)
resp,content = client.request('https://api.twitter.com/oauth/access_token',
        'POST',
        body='oauth_verifier={0}'.format(pin)
        )

d2 = dict(urlparse.parse_qsl(content) )

#Exportieren Sie hier Benutzerinformationen, wenn diese erfolgreich authentifiziert wurden
newroot = XML.Element('config')
tree = XML.parse(CONFIG_FILE)
root = tree.getroot()
CONSUMER_KEY = root.find('.//consumer_key').text
CONSUMER_SECLET = root.find('.//consumer_secret').text
con_key = XML.SubElement(newroot,'consumer_key');
con_key.text = CONSUMER_KEY
con_secret = XML.SubElement(newroot,'consumer_secret')
con_secret.text = CONSUMER_SECLET
oauth = XML.SubElement(newroot,'oauth_token')
oauth.text = d2['oauth_token']
oauth_secret = XML.SubElement( newroot ,'oauth_token_secret')
oauth_secret.text = d2['oauth_token_secret']

with open(CONFIG_FILE,'w') as f:
   f.write(pretty(newroot))

Wenn das Tweet-Konto und das Entwicklungskonto des verwendeten Clients identisch sind oauthing.py XML ignorieren und schreiben

config.xml


<?xml version="1.0" ?>
<config>
    <consumer_key>Twitter Client Consumer Key</consumer_key>
    <consumer_secret>Twitter-Client Verbraucher_SecretKey</consumer_secret>
    <oauth_token>Twitter-Client oauth_Token</oauth_token>
    <oauth_token_secret>Twitter-Client Oauth_Token_SecretKey</oauth_token_secret>
</config>

Wenn Sie sich authentifizieren können, reicht dies aus

Datei, um tatsächlich zu twittern

tweet.py


import twitter
import commands
import os
import platform
import urllib
import xml.etree.ElementTree as XML

def check_None(elem,key):
    res = None
    res = elem.find(key)
    if res == None:
        res = ''
    else:
        res = res.text
    return res


CONFIG_FILE = 'config.xml'

CONSUMER_KEY        = ''
CONSUMER_SECLET     = ''
ACCESS_TOKEN_KEY    = ''
ACCESS_TOKEN_SECLET = ''

#oauthing.Informationen aus mit py erstelltem XML abrufen
if os.path.isfile(CONFIG_FILE):
    tree = XML.parse(CONFIG_FILE)
    root = tree.getroot()
    CONSUMER_KEY        = check_None(root,'consumer_key')
    CONSUMER_SECLET     = check_None(root,'consumer_secret')
    ACCESS_TOKEN_KEY    = check_None(root,'oauth_token')
    ACCESS_TOKEN_SECLET = check_None(root,'oauth_token_secret')
else:
    exit()

api = twitter.Api(
        consumer_key = CONSUMER_KEY,
        consumer_secret = CONSUMER_SECLET,
        access_token_key = ACCESS_TOKEN_KEY,
        access_token_secret = ACCESS_TOKEN_SECLET,
        cache=None
        )

#Versuchen Sie, die globale IP zu twittern
ip = None
if platform.system() == 'Windows':
    sock = urllib.urlopen('http://ipcheck.ieserver.net')
    ip = sock.read()
    sock.close()
elif platform.system() == 'Linux':
    ip = commands.getoutput('wget -q -O - ipcheck.ieserver.net')

if ip == None:
    exit()

#Eigentlich twittern
status = api.PostUpdate('{0}'.format(ip))

Bitte ändern Sie es am Ende entsprechend

Ich habe oauthing.py erstellt, weil ich ein vom App-Entwicklungskonto getrenntes Konto verwenden wollte.

Wenn Sie cron verwenden, ist es möglicherweise besser, den vollständigen Pfad für den Teil `` `CONFIG_FILE``` zu verwenden.

Recommended Posts

[Memo] Tweet auf Twitter mit Python
Twitter-Grafiknotiz mit Python
Ein Memo mit Python2.7 und Python3 in CentOS
Ich möchte Twitter mit Python twittern, bin aber süchtig danach
Holen Sie sich Twitter-Timeline mit Python
Verwenden Sie die Twitter-API mit Python
Tweet mit Bild in Python
Twitter-Beiträge in Python 3 usw.
Suche nach Twitter-Tweets mit Python
Crawlen Sie die im Twitter-Tweet enthaltene URL mit Python
Automatisches Folgen auf Twitter mit Python und Selen! (RPA)
Python-Memo
Python-Memo
Python-Memo - Geben Sie die Optionen mit getopt an
Eingabe / Ausgabe mit Python (Python-Lernnotiz ⑤)
Python-Memo
Konstruktionsnotiz für die Python-Umgebung auf dem Mac
Veröffentlichen Sie mehrere Twitter-Bilder mit Python
Python-Memo
Python-Memo
Hinweise zur Verwendung von rstrip mit Python.
Mit Python 3 einfach auf Twitter posten
"Scraping & maschinelles Lernen mit Python" Lernnotiz
Python-Memo
Sammeln von Informationen von Twitter mit Python (Twitter API)
Erhalten Sie Verzögerungsinformationen auf Twitter und twittern Sie
Konvertieren Sie Memos sofort mit Python 2to3
Führen Sie das Servo mit Python unter ESP32 (Windows) aus.
Erstellen Sie mit python3 eine Wortwolke aus Ihrem Tweet
"Systemhandel beginnt mit Python3" Lesememo
Tweet mit der Twitter-API in Python
Kartenmietinformationen auf einer Karte mit Python
Verfolgen Sie aktive Anwendungen auf einem Mac mit Python
Hinweise zur japanischen OCR mit Python
Laden Sie mit Python Dateien im Web herunter
Erstellen Sie eine Python-Umgebung mit Anaconda auf einem Mac
Tweet-Analyse mit Python, Mecab und CaboCha
Machen wir einen Twitter-Bot mit Python!
PIL mit Python 3.x unter macOS installieren
Arbeiten mit GPS in Python für Raspberry Pi 3
FizzBuzz in Python3
Scraping mit Python
Python-Anfänger-Memo (9.2-10)
Statistik mit Python
Python unter Windows
Scraping mit Python
Python-Anfänger-Memo (9.1)
Twilio mit Python
In Python integrieren
Versuchen Sie, den RSS-Feed von arXiv mit Python von Raspeye auf Twitter zu twittern
Spielen Sie mit 2016-Python
AES256 mit Python
★ Memo ★ Python Iroha
Python beginnt mit ()
Python auf Mac
Python 3-Operator-Memo
Bingo mit Python