Cet article vous montrera comment utiliser l'API Typetalk en Python. Au fait, j'ai fait un bot de jugement curry.
Créez un bot et obtenez un jeton et une URL.
Ouvrez l'onglet Bot dans Paramètres du sujet.
Appuyez sur «Ajouter nouveau» pour ouvrir l'écran des paramètres du bot.
Les éléments sont les suivants. Veuillez définir chacun.
article | La description |
---|---|
ID de bot | ID unique du bot |
Nom du robot | Nom d'utilisateur du bot |
La description | ボットのLa description |
Portée de l'API | Autorité du bot |
Outgoing Webhook | Non utilisé dans cet article |
Après le réglage, appuyez sur Créer
.
Vous devriez voir le jeton et l'URL en bas.
Lorsque vous y êtes invité, notez le jeton et l'URL.
Ceci termine les préparatifs.
Python 3.8.5
Nous utilisons la bibliothèque de communication HTTP de Python appelée Requests.
pip install requests
Entrez le token et l'URL que vous avez notés dans token
et ʻurl`.
Les échantillons officiels ont été légèrement modifiés.
sample.py
import requests
token = ''
url = ''
data = {'message':'Hello, Typetalk!'}
headers = {'X-TYPETALK-TOKEN': token}
r = requests.post(url, json = data, headers = headers)
print(r.status_code)
print(r.json())
Lorsqu'il est exécuté, le bot doit publier «Hello, Typetalk!» Dans le sujet. Vous devriez également voir une réponse. Contient des informations détaillées sur le message que vous avez publié.
Recevoir le message.
Utilisez pprint
pour rendre la réponse plus facile à lire.
get.py
import requests
import pprint
token = ''
url = ''
headers = {'X-TYPETALK-TOKEN': token}
r = requests.get(url, headers = headers)
print(r.status_code)
pprint.pprint(r.json())
[Exemple officiel](https://developer.nulab.com/ja/docs/typetalk/api/1/get-messages/#%E3%83%AC%E3%82%B9%E3%83%9D% E3% 83% B3% E3% 82% B9% E3% 81% AE% E4% BE% 8B) a été cité.
example.json
{
"bookmark": {
"postId": 172371,
"updatedAt": "2019-03-11T08:37:40Z"
},
"exceedsAttachmentLimit": false,
"postContentsSettings": {
"collapsedAccountIds": []
},
"myTopic": {
"id": 15376,
"topicId": 3557,
"accountId": 2488,
"kind": "grouped",
"topicGroupId": 1703,
"exTopicGroupId": 1702,
"orderNo": 0,
"createdAt": "2019-02-13T08:27:22Z",
"updatedAt": "2019-02-13T08:27:22Z"
},
"topic": {
"createdAt": "2016-02-05T06:13:44Z",
"lastPostedAt": "2019-03-11T08:38:04Z",
"isArchived": false,
"suggestion": "Amélioration UX",
"name": "Amélioration UX",
"description": "C'est un sujet sur l'amélioration de l'UX.\n N'hésitez pas à parler de design, d'UX et d'autres choses que vous remarquez.\n\n Résumé Wiki sur l'amélioration du site\n- https://xxxxx.backlog.jp/wiki/WEBSITE/Kaizen\n\n Nous publierons également des événements liés à ce sujet.",
"isDirectMessage": false,
"id": 3557,
"updatedAt": "2018-10-18T01:54:18Z"
},
"onboarding": null,
"hasNext": false,
"team": null,
"mySpace": {
"space": {
"key": "XXXXXXX",
"name": "Nulab Inc",
"enabled": true,
"imageUrl": "https://apps.nulab.com/spaces/XXXXXXX/photo/large"
},
"myRole": "ADMIN",
"isPaymentAdmin": true,
"invitableRoles": [
"ADMIN",
"USER",
"GUEST"
],
"myPlan": {
"plan": {
"key": "typetalk.standard25",
"name": "Standard 25 utilisateurs",
"limitNumberOfUsers": 25,
"limitNumberOfAllowedAddresses": 25,
"limitTotalAttachmentSize": 268435456000
},
"enabled": true,
"trial": null,
"numberOfUsers": 5,
"numberOfAllowedAddresses": 0,
"totalAttachmentSize": 14356,
"createdAt": "2016-01-19T09:29:10Z",
"updatedAt": "2019-08-28T08:19:49Z"
}
},
"favorite": true,
"posts": [
{
"attachments": [
{
"attachment": {
"contentType": "application/octet-stream",
"fileKey": "1",
"fileName": "1.jpg ",
"fileSize": 472263
},
"webUrl": "https://typetalk.com/topics/3557/posts/154010/attachments/1/1.jpg ",
"apiUrl": "https://typetalk.com/api/v1/topics/3557/posts/154010/attachments/1/1.jpg "
},
{
"attachment": {
"contentType": "application/octet-stream",
"fileKey": "2",
"fileName": "2.jpg ",
"fileSize": 494376
},
"webUrl": "https://typetalk.com/topics/3557/posts/154010/attachments/2/2.jpg ",
"apiUrl": "https://typetalk.com/api/v1/topics/3557/posts/154010/attachments/2/2.jpg "
},
{
"attachment": {
"contentType": "application/octet-stream",
"fileKey": "3",
"fileName": "5.jpg ",
"fileSize": 218100
},
"webUrl": "https://typetalk.com/topics/3557/posts/154010/attachments/3/5.jpg ",
"apiUrl": "https://typetalk.com/api/v1/topics/3557/posts/154010/attachments/3/5.jpg "
},
{
"attachment": {
"contentType": "application/octet-stream",
"fileKey": "4",
"fileName": "6.jpg ",
"fileSize": 627926
},
"webUrl": "https://typetalk.com/topics/3557/posts/154010/attachments/4/6.jpg ",
"apiUrl": "https://typetalk.com/api/v1/topics/3557/posts/154010/attachments/4/6.jpg "
}
],
"quotedPosts": [],
"message": "J'ai pu améliorer l'écran supérieur. http://nulab-inc.com/ja/",
"mention": null,
"createdAt": "2019-03-02T06:13:44Z",
"topicId": 3557,
"contents": null,
"mentions": [],
"talks": [],
"replyTo": null,
"links": [
{
"id": 3148,
"url": "http://nulab-inc.com/ja/",
"contentType": "text/html; charset=UTF-8",
"title": "Poursuite de la collaboration avec l'équipe|Nulab",
"description": "Des millions d'utilisateurs utilisent les services de Nulab pour améliorer la communication d'équipe. Rendez le travail de votre équipe plus agréable avec les outils de collaboration en ligne de Nulab.",
"imageUrl": "https://nulab-inc.com/ogp_dft.png ",
"embed": null,
"createdAt": "2015-06-15T06:41:24Z",
"updatedAt": "2017-03-03T10:11:08Z"
}
],
"id": 154010,
"account": {
"id": 2492,
"name": "hayashi",
"fullName": "hayashi",
"suggestion": "hayashi",
"imageUrl": "https://typetalk.com/accounts/2492/profile_image.png?t=1453871047310",
"isBot": false,
"createdAt": "2016-01-26T08:19:01Z",
"updatedAt": "2019-09-04T07:25:45Z"
},
"likes": [],
"updatedAt": "2019-03-02T06:13:44Z"
},
{
"attachments": [],
"quotedPosts": [],
"message": "Masa-san, que pensez-vous de la couleur de cet écran?",
"mention": null,
"createdAt": "2019-03-03T06:13:44Z",
"topicId": 3557,
"contents": null,
"mentions": [],
"talks": [],
"replyTo": null,
"links": [],
"id": 154011,
"account": {
"id": 2489,
"name": "yoshizawa",
"fullName": "Yoshi",
"suggestion": "Yoshi",
"imageUrl": "https://typetalk.com/accounts/2489/profile_image.png?t=1564389095614",
"isBot": false,
"createdAt": "2016-01-26T08:18:12Z",
"updatedAt": "2019-09-04T07:25:45Z"
},
"likes": [],
"updatedAt": "2019-03-03T06:13:44Z"
}
]
}
Parmi ceux-ci, celui auquel il faut prêter attention est les «posts».
posts.json
"posts": [
{
"attachments": [
{
"attachment": {
"contentType": "application/octet-stream",
"fileKey": "1",
"fileName": "1.jpg ",
"fileSize": 472263
},
"webUrl": "https://typetalk.com/topics/3557/posts/154010/attachments/1/1.jpg ",
"apiUrl": "https://typetalk.com/api/v1/topics/3557/posts/154010/attachments/1/1.jpg "
},
{
"attachment": {
"contentType": "application/octet-stream",
"fileKey": "2",
"fileName": "2.jpg ",
"fileSize": 494376
},
"webUrl": "https://typetalk.com/topics/3557/posts/154010/attachments/2/2.jpg ",
"apiUrl": "https://typetalk.com/api/v1/topics/3557/posts/154010/attachments/2/2.jpg "
},
{
"attachment": {
"contentType": "application/octet-stream",
"fileKey": "3",
"fileName": "5.jpg ",
"fileSize": 218100
},
"webUrl": "https://typetalk.com/topics/3557/posts/154010/attachments/3/5.jpg ",
"apiUrl": "https://typetalk.com/api/v1/topics/3557/posts/154010/attachments/3/5.jpg "
},
{
"attachment": {
"contentType": "application/octet-stream",
"fileKey": "4",
"fileName": "6.jpg ",
"fileSize": 627926
},
"webUrl": "https://typetalk.com/topics/3557/posts/154010/attachments/4/6.jpg ",
"apiUrl": "https://typetalk.com/api/v1/topics/3557/posts/154010/attachments/4/6.jpg "
}
],
"quotedPosts": [],
"message": "J'ai pu améliorer l'écran supérieur. http://nulab-inc.com/ja/",
"mention": null,
"createdAt": "2019-03-02T06:13:44Z",
"topicId": 3557,
"contents": null,
"mentions": [],
"talks": [],
"replyTo": null,
"links": [
{
"id": 3148,
"url": "http://nulab-inc.com/ja/",
"contentType": "text/html; charset=UTF-8",
"title": "Poursuite de la collaboration avec l'équipe|Nulab",
"description": "Des millions d'utilisateurs utilisent les services de Nulab pour améliorer la communication d'équipe. Rendez le travail de votre équipe plus agréable avec les outils de collaboration en ligne de Nulab.",
"imageUrl": "https://nulab-inc.com/ogp_dft.png ",
"embed": null,
"createdAt": "2015-06-15T06:41:24Z",
"updatedAt": "2017-03-03T10:11:08Z"
}
],
"id": 154010,
"account": {
"id": 2492,
"name": "hayashi",
"fullName": "hayashi",
"suggestion": "hayashi",
"imageUrl": "https://typetalk.com/accounts/2492/profile_image.png?t=1453871047310",
"isBot": false,
"createdAt": "2016-01-26T08:19:01Z",
"updatedAt": "2019-09-04T07:25:45Z"
},
"likes": [],
"updatedAt": "2019-03-02T06:13:44Z"
},
{
"attachments": [],
"quotedPosts": [],
"message": "Masa-san, que pensez-vous de la couleur de cet écran?",
"mention": null,
"createdAt": "2019-03-03T06:13:44Z",
"topicId": 3557,
"contents": null,
"mentions": [],
"talks": [],
"replyTo": null,
"links": [],
"id": 154011,
"account": {
"id": 2489,
"name": "yoshizawa",
"fullName": "Yoshi",
"suggestion": "Yoshi",
"imageUrl": "https://typetalk.com/accounts/2489/profile_image.png?t=1564389095614",
"isBot": false,
"createdAt": "2016-01-26T08:18:12Z",
"updatedAt": "2019-09-04T07:25:45Z"
},
"likes": [],
"updatedAt": "2019-03-03T06:13:44Z"
}
]
Vous pouvez obtenir diverses choses telles que l'identifiant du message, le fichier joint, le nombre de likes, etc.
L'ID de message est utilisé pour répondre au message publié par le bot lui-même.
Utilisez json
pour travailler avec des chaînes JSON.
reply_to_me.py
import requests
import pprint
import json
token = ''
url = ''
msg = {'message':'Hello, Typetalk!'}
headers = {'X-TYPETALK-TOKEN': token}
r = requests.post(url, json = msg, headers = headers)
dict = json.loads(r.text)
id = dict['post']['id']
reply = {'message':'salut!', 'replyTo': id}
q = requests.post(url, json = reply, headers = headers)
print(q.status_code)
pprint.pprint(q.json())
Lorsque vous exécutez, le bot est `Hello! Vous devriez répondre ».
dic = json.loads(r.text)
Convertit une chaîne JSON en un type de dictionnaire.
id = dict['post']['id']
[Exemple de réponse officielle](https://developer.nulab.com/en/docs/typetalk/api/1/post-message/#%E3%83%AC%E3%82%B9%E3%83% À partir de 9D% E3% 83% B3% E3% 82% B9% E3% 81% AE% E4% BE% 8B), nous pouvons voir que l'ID du message est la valeur de la clé ʻid sous la clé
post`.
reply = {'message':'salut!', 'replyTo': id}
Vous pouvez faire différentes choses en définissant des paramètres. Lors de la publication d'un message, vous pouvez répondre en écrivant «message ID» dans «replyTo».
Le bot lui-même aime les messages publiés par le bot.
like.py
import requests
import pprint
import json
token = ''
url = ''
msg = {'message':'Hello, Typetalk!'}
headers = {'X-TYPETALK-TOKEN': token}
r = requests.post(url, json = msg, headers = headers)
dic = json.loads(r.text)
id = dic['post']['id']
like = url + '/posts/' + str(id) + '/like'
q = requests.post(like, headers = headers)
print(q.status_code)
pprint.pprint(q.json())
Lorsque vous l'exécutez, votre bot devrait l'aimer.
like = url + '/posts/' + str(id) + '/like'
Vous pouvez faire différentes choses en définissant des paramètres d'URL. Ajouter comme
https://typetalk.com/api/v1/topics/:topicId/posts/:postId/like
Il est devenu.
Ce qui précède est l'introduction de la façon d'utiliser.
Vous pouvez effectuer de nombreuses autres actions, telles que la suppression de messages et le téléchargement de fichiers joints.
Vous pouvez voir les différents paramètres dans le tiroir API Typetalk
à gauche de la documentation de l'API Typetalk (https://developer.nulab.com/en/docs/typetalk/).
Avec la méthode ci-dessus, seules les API de portée topic.post
et topic.read
sont accessibles.
Recommended Posts