[Lambda] [Python] Von Lambda auf Twitter posten!

Das Wetter ist schlecht. Das ist Yoshida. Ich mag Lambda besonders für AWS-Services. Legen Sie beiseite, ob Sie es beherrschen Liegt es daran, dass Lambda kürzlich Python verfügbar gemacht hat?

Ich höre Lambda-Material in Python!

Was für ein cooler Node.js! Ich habe mich gefragt, ob ich veraltet bin! ?? (Bestürzung)

Weil ich solche Angst hatte, versuchte ich ungefähr 4 Stunden lang mein Bestes mit Python.


0. Zweck

Lambda wird mit awsSNS als Auslöser ausgelöst und SNS-Nachrichten werden auf Twitter gepostet.

_ Das Bild sieht so aus _

プレゼンテーション1.jpg

Dieses Mal werde ich die Beispiel-SNS-Nachricht verwenden, um "Hallo von SNS!" In mein Konto zu posten.

Voraussetzungen

1. Vorbereitung zum Posten auf Twitter

Machen Sie sich bereit für die Arbeit mit Twitter

https://dev.twitter.com/

Wenn Sie auf die oben genannte URL zugreifen, gelangen Sie zur Twitter-Entwicklerseite.

Wenn Sie Twitter-Apps registriert haben oder dies vor langer Zeit getan haben, hier

Twitter画面1.jpg

Twitter_Developers2.jpg

Wenn Sie sich nicht in Ihrem Twitter-Konto angemeldet haben, klicken Sie oben rechts auf Anmelden, um sich anzumelden.

Twitter_Application_Management.jpg

Create_an_application___Twitter_Application_Management.jpg

Wenn Sie mit dem Schreiben fertig sind, scrollen Sie nach unten und wenn Sie die Aufmerksamkeit lesen können, lesen Sie und stimmen Sie zu.

sample2yukiyoshid___Twitter_Application_Management.jpg

2sample2yukiyoshid___Twitter_Application_Management.jpg

003.jpg

004.jpg Wenn Sie die oben genannten vier Schlüssel bestätigen können, ist die Vorbereitung auf Twitter abgeschlossen.

2. Vorbereiten der Erstellung der Lambda-Funktion

Jetzt, da Twitter fertig ist, werde ich es sofort schreiben.

Nutzungsumgebung: Mac

Erstellen Sie zunächst ein Arbeitsverzeichnis und installieren Sie die externen Module, die darin verwendet werden sollen. Diesmal habe ich es direkt unter dem Haus erstellt. Erstellen Sie nach dem Erstellen des Verzeichnisses eine Datei, die das Skript beschreibt.

mkdir lambda_function`
cd lambda_function
vi function.py

Installieren Sie als Nächstes das in Lambda verwendete externe Modul. Dieses Mal werden wir ein Modul namens "Requests-OAuthlib" verwenden, also installieren Sie es.

pip install requests_oauthlib -t ./


 ___ Drücken Sie den Befehl in dem Verzeichnis, das Sie gerade erstellt haben. ___
 Sie kann installiert werden, indem Sie das aktuelle Verzeichnis nach der Option ___- t angeben. ___

3.fnction.py
 Hier ist das Skript, das ich dieses Mal geschrieben habe


#### **`function.py`**
```python


from requests_oauthlib import OAuth1Session

# Consumer Key 			: CK
# Consumer Secret 		: CS
# Access Token 			: AT
# Accesss Token Secert 	: AS

CK = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
CS = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
AT = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
AS = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'

URL = 'https://api.twitter.com/1.1/statuses/update.json'


def handler(event, context):
	msg = event['Records'][0]['Sns']['Message']
	params = {"status": msg }

	twitter = OAuth1Session(CK, CS, AT, AS)
	req = twitter.post(URL, params = params)

	if req.status_code == 200:
		return msg
	else:	
		return req.status_code


Dank dieses Skripts wurde Python Virgin zu 4 Stunden Python-Geschichte befördert. Nein, es funktioniert nicht! Das allein (Schweiß Die URL scheint eine spezielle URL zum Posten zu sein.

4. Zippen Sie die erstellte Umgebung in AWS

Lassen Sie uns die diesmal erstellte Umgebung komprimieren und zu AWS bringen Beachten Sie, dass ___ Sie wütend werden, wenn Sie das Modul nur finden können, wenn Sie den Inhalt des erstellten Verzeichnisses ___ komprimieren. Ich war ungefähr eine Stunde lang süchtig danach ...

cd lambda_function

zip -r myfunc.zip ./



 Der Name der zu komprimierenden Zip-Datei ist angemessen.

 ![AWS_マネジメントコンソール.jpg](https://qiita-image-store.s3.amazonaws.com/0/52141/fa003804-a627-f200-a1ba-b3288da87c1f.jpeg "AWS_マネジメントコンソール.jpg ")

 ![AWS_Lambda.jpg](https://qiita-image-store.s3.amazonaws.com/0/52141/4a4a5aab-f73f-3f6a-cbbb-5030b5c808f6.jpeg "AWS_Lambda.jpg ")

 ![AWS_Lambda02.jpg](https://qiita-image-store.s3.amazonaws.com/0/52141/6e78ebd2-2b01-0ad7-6d94-c43398432052.jpeg "AWS_Lambda02.jpg ")

 ![AWS_Lambda03.jpg](https://qiita-image-store.s3.amazonaws.com/0/52141/f4c24b7c-61ee-e30e-fe1b-d361ae627909.jpeg "AWS_Lambda03.jpg ")

#### Der Punkt ist der Name des Handlers. Der Grund, ein function.handler zu werden, ist wie geschrieben.

 Führen Sie danach die Funktion "Erstellen" aus, und Sie sind fertig.

4.Test
 Geben Sie die Testquelle als SNS an. Dann ...
 ![AWS_Lambda-kekka.jpg](https://qiita-image-store.s3.amazonaws.com/0/52141/e182de85-c722-d23b-c4a0-6b1c7b8a31e7.jpeg "AWS_Lambda-kekka.jpg ")

 Das Protokoll ist ordnungsgemäß gelöscht.
 Wenn Sie Twitter überprüfen ...

 ![ミッスッター_ヨーダ__Yuki_BB3_さん___Twitter.jpg](https://qiita-image-store.s3.amazonaws.com/0/52141/f2164b23-0446-facc-ebab-f843fe508a01.jpeg "ミッスッター_ヨーダ__Yuki_BB3_さん___Twitter.jpg ")

 Es ist fertig!


 Bei dieser App wurde beim Versuch, genau dieselbe Testnachricht zu senden, ein 403-Fehler angezeigt, und ich konnte keine Beiträge verfassen. Ist es eine Spezifikation?

---

 Ich habs gemacht! !! !! !!
 Es ist fertig!

 Wenn Sie beispielsweise BOTO verwenden, um die in der AWS-Umgebung eingerichtete EC2-Nummer zu twittern, können Sie verhindern, dass Sie vergessen, sie zu löschen, oder?

 Unabhängig davon, wofür ich es verwende, bin ich froh, dass ich etwas gemacht habe, das mit Python funktioniert.



### Referenz
 [Zugriff auf die Twitter-API mit Python](http://qiita.com/yubais/items/dd143fe608ccad8e9f85)

 [Erstellen einer Twitter-Anwendung (Verbraucherschlüssel, Verbrauchergeheimnis, Zugriffstoken, geheime Bestätigungsmethode für Zugriffstoken)](http://website-planner.com/twitter%E3%82%A2%E3%83%97%E3% 83% AA% E3% 82% B1% E3% 83% BC% E3% 82% B7% E3% 83% A7% E3% 83% B3% E3% 81% AE% E4% BD% 9C% E6% 88% 90% EF% BC% 88Konsumentenschlüssel% E3% 80% 81Konsumentengeheimnis% E3% 80% 81Zugriffstoken% E3% 80% 81Zugriffstokengeheimnis /)


Recommended Posts

[Lambda] [Python] Von Lambda auf Twitter posten!
Post von Python nach Slack
Mit Python auf Twitter posten
Post von Python auf Facebook Timeline
Poste ein Bild von Python auf Tumblr
Mit Python 3 einfach auf Twitter posten
Poste regelmäßig mit AWS Lambda auf Twitter!
Zugriff auf RDS von Lambda (Python)
Änderungen von Python 3.0 zu Python 3.5
Änderungen von Python 2 zu Python 3.0
Poste den hochfliegenden Titel von Youtube mit python3 auf Twitter
poste an vim → Python → Slack
Flirte von PHP nach Python
Poste Twitter über die Kommandozeile
Post to Slack mit Python 3
Anaconda aktualisiert von 4.2.0 auf 4.3.0 (python3.5 aktualisiert auf python3.6)
Fragen Sie Athena von Lambda Python ab
Wechseln Sie von Python2.7 zu Python3.6 (centos7)
Stellen Sie von Python aus eine Verbindung zu SQLite her
Wie benutzt man Python Lambda?
Post an Slack in Python
POST-Nachrichten von Python an Slack über eingehenden Webhook
Rufen Sie Matlab von Python zur Optimierung auf
[Einführung in die Udemy Python3 + -Anwendung] 58. Lambda
Stellen Sie von Python aus eine Verbindung zur utf8mb4-Datenbank her
Veröffentlichen Sie mehrere Twitter-Bilder mit Python
Python (vom ersten Mal bis zur Ausführung)
So greifen Sie über Python auf Wikipedia zu
Python, um von einer anderen Sprache zu wechseln
[Python] Exportieren Sie regelmäßig mit Lambda aus CloudWatch-Protokollen nach S3
[Nanonets] Wie poste ich Memo [Python]
Hat sich nicht von Python 2 auf 3 geändert
Aktualisieren Sie Mac Python von 2 auf 3
Senden Sie eine Nachricht von IBM Cloud Functions an Slack in Python
Vorsichtsmaßnahmen beim Ausführen von Python unter EC2 über AWS Lambda (Befehl ausführen)
Sammeln von Informationen von Twitter mit Python (Twitter API)
[Python] Fluidsimulation: Von linear zu nichtlinear
Von Python bis zur Verwendung von MeCab (und CaboCha)
So aktualisieren Sie Google Sheets von Python
Privates Python-Handbuch (von Zeit zu Zeit aktualisiert)
Tweet von Python mit Twitter Developer + Tweepy
Ich möchte ein Glas aus Python verwenden
Konvertieren Sie von Katakana zu Vokal Kana [Python]
Push-Benachrichtigung vom Python-Server an Android
Herstellen einer Verbindung von Python zu MySQL unter CentOS 6.4
Poste von einem anderen Konto mit Twitter API
Portieren und Ändern des Doublet-Solvers von Python2 auf Python3.
Lambda-Funktion zur Erstellung eines AMI-Backups (Python)
Python> Ausgaben von 1 bis 100, 501 bis 600> Für CSV
Stellen Sie mit AWS Lambda Python eine Verbindung zu s3 her
[Road to Intermediate Python] Verwenden Sie Lambda-Ausdrücke
In Python von Markdown in HTML konvertieren
[Amazon Linux] Wechsel von der Python 2-Serie zur Python 3-Serie
API-Erklärung zum Berühren von Mastodon aus Python
Stellen Sie von Python aus eine Verbindung zur Websocket-API von coincheck her
UNHEALTHY Workspaces starten Lambda neu, das in Python umgeschrieben wurde
Auf Python 2.7.9 aktualisiert
Twitter mit Python3
Summe von 1 bis 10