[Lambda] [Python] Publier sur Twitter depuis Lambda!

Le temps est mauvais. C'est Yoshida. J'aime particulièrement Lambda pour les services AWS. Mettez de côté si vous le maîtrisez Est-ce parce que Lambda a récemment rendu Python disponible?

J'écoute du matériel Lambda en Python!

Quel bon Node.js! Je me demandais si je ne suis pas à jour! ?? (Consternation)

Parce que je ressentais une telle anxiété, j'ai fait de mon mieux avec Python pendant environ 4 heures.


0. Objectif

Lambda est déclenché avec awsSNS comme déclencheur et les messages SNS sont publiés sur Twitter.

_ L'image ressemble à ceci _

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

Cette fois, j'utiliserai l'exemple de message SNS pour publier "Bonjour de SNS!" Sur mon compte.

Conditions préalables

--J'ai un compte Twitter

1. Se préparer à publier sur Twitter

Préparez-vous à travailler avec Twitter

https://dev.twitter.com/

L'accès à l'URL ci-dessus vous mènera au site des développeurs Twitter.

Si vous avez enregistré une application Twitter ou quelque chose il y a longtemps, ici

Twitter画面1.jpg

Twitter_Developers2.jpg

Si vous n'êtes pas connecté à votre compte Twitter, cliquez sur Se connecter en haut à droite pour vous connecter.

Twitter_Application_Management.jpg

Create_an_application___Twitter_Application_Management.jpg

Lorsque vous avez terminé d'écrire, faites défiler vers le bas et si vous pouvez lire l'attention, lisez et acceptez.

sample2yukiyoshid___Twitter_Application_Management.jpg

2sample2yukiyoshid___Twitter_Application_Management.jpg

003.jpg

004.jpg Si vous pouvez confirmer les quatre clés ci-dessus, la préparation sur Twitter est terminée.

2. Préparation de la création de la fonction Lambda

Maintenant que Twitter est prêt, je vais l'écrire tout de suite.

Environnement d'utilisation: Mac

Tout d'abord, créez un répertoire de travail et installez les modules externes à utiliser. Cette fois, je l'ai créé juste sous la maison. Après avoir créé le répertoire, créez un fichier décrivant le script.

mkdir lambda_function`
cd lambda_function
vi function.py

Ensuite, installez le module externe utilisé dans lambda. Cette fois, nous allons utiliser un module appelé "Requests-OAuthlib", donc installez-le.

pip install requests_oauthlib -t ./


 ___ Appuyez sur la commande dans le répertoire que vous venez de créer ___
 Il peut être installé en spécifiant le répertoire courant après l'option ___- t. ___

3.fnction.py
 Voici le script que j'ai écrit cette fois


#### **`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


Grâce à ce script, Python Virgin a été promu à 4 heures d'histoire Python. Non, ça ne marche pas! Cela seul (suer L'URL semble être une URL spéciale pour la publication.

4. Compressez l'environnement créé sur AWS

Fermons l'environnement créé cette fois et apportons-le à AWS Notez que ___ vous serez en colère si vous ne trouvez pas le module à moins de compresser le contenu du répertoire créé ___ J'étais accro à ça pendant environ une heure ...

cd lambda_function

zip -r myfunc.zip ./



 Le nom du fichier zip à compresser est approprié.

 ![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 ")

#### Le point est le nom du gestionnaire. La raison pour laquelle vous devenez un function.handler est telle qu'elle est écrite.

 Tout ce que vous avez à faire est de créer une fonction et vous avez terminé.

4.Test
 Spécifiez la source de test comme SNS. Alors ...
 ![AWS_Lambda-kekka.jpg](https://qiita-image-store.s3.amazonaws.com/0/52141/e182de85-c722-d23b-c4a0-6b1c7b8a31e7.jpeg "AWS_Lambda-kekka.jpg ")

 Le journal est correctement sorti.
 Si vous vérifiez Twitter ...

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

 C'est fait!


 Pour cette application, lorsque j'ai essayé d'envoyer exactement le même message de test, j'ai eu une erreur 403 et je n'ai pas pu publier. Est-ce une spécification?

---

 Je l'ai fait! !! !! !!
 C'est fait!

 Par exemple, si vous utilisez BOTO pour tweeter le nombre d'EC2 que vous avez configuré dans l'environnement AWS, vous pouvez éviter d'oublier de l'effacer, non?

 C'est bien d'avoir quelque chose qui fonctionne avec Python, quel que soit son usage.



### référence
 [Accéder à l'API Twitter avec Python](http://qiita.com/yubais/items/dd143fe608ccad8e9f85)

 [Création d'une application Twitter (clé du consommateur, secret du consommateur, jeton d'accès, méthode de confirmation du secret du jeton d'accès)](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% 88consumer-key% E3% 80% 81consumer-secret% E3% 80% 81access-token% E3% 80% 81access-token-secret /)


Recommended Posts

[Lambda] [Python] Publier sur Twitter depuis Lambda!
Publier de Python vers Slack
Publier sur Twitter en utilisant Python
Publication de Python sur la chronologie Facebook
Publier une image de Python sur Tumblr
Publiez facilement sur Twitter avec Python 3
Publiez régulièrement sur Twitter en utilisant AWS lambda!
Comment accéder à RDS depuis Lambda (python)
Changements de Python 3.0 à Python 3.5
Changements de Python 2 à Python 3.0
Publiez le titre en plein essor de YouTube sur Twitter avec python3
publier sur vim → Python → Slack
Flirter de PHP à Python
Publier Twitter depuis la ligne de commande
Publiez sur Slack avec Python 3
Anaconda mis à jour de 4.2.0 à 4.3.0 (python3.5 mis à jour vers python3.6)
Interroger Athena depuis Lambda Python
Passer de python2.7 à python3.6 (centos7)
Connectez-vous à sqlite depuis python
Comment utiliser Python lambda
Publier sur Slack en Python
POSTER des messages de python vers Slack via un webhook entrant
Appelez Matlab depuis Python pour optimiser
[Présentation de l'application Udemy Python3 +] 58. Lambda
Connectez-vous à la base de données utf8mb4 à partir de python
Publiez plusieurs images Twitter avec python
Python (de la première fois à l'exécution)
Comment accéder à wikipedia depuis python
Python pour passer d'une autre langue
[Python] Exportez régulièrement de CloudWatch Logs vers S3 avec Lambda
[Nanonets] Comment publier un mémo [Python]
N'a pas changé de Python 2 à 3
Mettre à jour Mac Python de 2 à 3
Publier un message d'IBM Cloud Functions sur Slack en Python
Précautions lors de l'exécution de Python sur EC2 à partir d'AWS Lambda (Exécuter la commande)
Collecter des informations sur Twitter avec Python (API Twitter)
[Python] Simulation de fluide: de linéaire à non linéaire
De Python à l'utilisation de MeCab (et CaboCha)
Comment mettre à jour Google Sheets à partir de Python
Manuel Python privé (mis à jour de temps en temps)
Tweet de python avec Twitter Developer + Tweepy
Je veux utiliser jar de python
Conversion de katakana en voyelle kana [python]
Notification push du serveur Python vers Android
Connexion de python à MySQL sur CentOS 6.4
Publier à partir d'un autre compte avec l'API Twitter
Portage et modification du solveur de doublets de python2 vers python3.
Fonction Lambda pour effectuer une sauvegarde AMI (python)
Python> Numéros de sortie de 1 à 100, 501 à 600> Pour csv
Connectez-vous à s3 avec AWS Lambda Python
[Route vers Python intermédiaire] Utiliser des expressions lambda
Convertir de Markdown en HTML en Python
[Amazon Linux] Passage de la série Python 2 à la série Python 3
Explication API pour toucher mastodonte de python
Connectez-vous à l'API Websocket de Coincheck depuis Python
Les espaces de travail MAUVAIS redémarrent Lambda réécrit en python
Mis à jour vers Python 2.7.9
twitter avec python3
Somme de 1 à 10