Dieser Artikel zeigt Ihnen, wie Sie die Typetalk-API in Python verwenden. Übrigens habe ich einen Curry-Beurteilungsbot gemacht.
Erstellen Sie einen Bot und erhalten Sie ein Token und eine URL.
Öffnen Sie die Registerkarte Bot in den Themeneinstellungen. Screenshot 2020-09-09 153331.jpg
Drücken Sie "Neu hinzufügen", um den Bildschirm mit den Bot-Einstellungen zu öffnen.
Die Elemente sind wie folgt. Bitte jeweils einstellen.
Artikel | Erläuterung |
---|---|
Bot ID | Bots eindeutige ID |
Bot Name | Bot Benutzername |
Erläuterung | ボットのErläuterung |
API-Bereich | Bot Autorität |
Outgoing Webhook | Wird in diesem Artikel nicht verwendet |
Drücken Sie nach dem Einstellen "Erstellen". Sie sollten das Token und die URL unten sehen.
Notieren Sie sich das Token und die URL, wenn Sie dazu aufgefordert werden.
Damit sind die Vorbereitungen abgeschlossen.
Python 3.8.5
Wir verwenden die HTTP-Kommunikationsbibliothek von Python namens Requests.
pip install requests
Geben Sie das Token und die URL ein, die Sie in "Token" und "URL" notiert haben.
Die offiziellen Beispiele wurden geringfügig geändert.
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())
Beim Ausführen sollte der Bot "Hallo, Typetalk!" Zum Thema posten. Sie sollten auch eine Antwort sehen. Enthält detaillierte Informationen zu der von Ihnen geposteten Nachricht.
Erhalten Sie die Nachricht. Verwenden Sie "pprint", um die Antwort besser lesbar zu machen.
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())
[Offizielles Beispiel](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) wurde angegeben.
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": "UX-Verbesserung",
"name": "UX-Verbesserung",
"description": "Dies ist ein Thema zur Verbesserung von UX.\n Sie können gerne über Design, UX und andere Dinge sprechen, die Ihnen auffallen.\n\n Zusammenfassendes Wiki zur Verbesserung der Website\n- https://xxxxx.backlog.jp/wiki/WEBSITE/Kaizen\n\n Wir werden auch verwandte Ereignisse zu diesem Thema veröffentlichen.",
"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 Benutzer",
"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": "Ich konnte den oberen Bildschirm verbessern. 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": "Weitere Zusammenarbeit mit dem Team|Nulab",
"description": "Millionen von Benutzern nutzen die Dienste von Nulab, um die Teamkommunikation zu verbessern. Machen Sie die Arbeit Ihres Teams mit den Online-Tools von Nulab für die Zusammenarbeit angenehmer.",
"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": "Mr. Masa, was halten Sie von der Farbe dieses Bildschirms?",
"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"
}
]
}
Von diesen sind die "Beiträge" zu beachten.
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": "Ich konnte den oberen Bildschirm verbessern. 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": "Weitere Zusammenarbeit mit dem Team|Nulab",
"description": "Millionen von Benutzern nutzen die Dienste von Nulab, um die Teamkommunikation zu verbessern. Machen Sie die Arbeit Ihres Teams mit den Online-Tools von Nulab für die Zusammenarbeit angenehmer.",
"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": "Mr. Masa, was halten Sie von der Farbe dieses Bildschirms?",
"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"
}
]
Sie können verschiedene Dinge wie Nachrichten-ID, angehängte Datei, Anzahl der Likes usw. erhalten.
Die Nachrichten-ID wird verwendet, um auf die vom Bot selbst gepostete Nachricht zu antworten.
Verwenden Sie json
, um mit JSON-Strings zu arbeiten.
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':'Hallo!', 'replyTo': id}
q = requests.post(url, json = reply, headers = headers)
print(q.status_code)
pprint.pprint(q.json())
Wenn Sie laufen, ist der Bot Hallo! Sie sollten
antworten.
dic = json.loads(r.text)
Konvertiert eine JSON-Zeichenfolge in einen Wörterbuchtyp.
id = dict['post']['id']
[Beispiel für eine offizielle Antwort](https://developer.nulab.com/de/docs/typetalk/api/1/post-message/#%E3%83%AC%E3%82%B9%E3%83% Aus 9D% E3% 83% B3% E3% 82% B9% E3% 81% AE% E4% BE% 8B) können wir erkennen, dass die Nachrichten-ID der Wert des "id" -Schlüssels unter dem "post" -Schlüssel ist.
reply = {'message':'Hallo!', 'replyTo': id}
Sie können verschiedene Dinge tun, indem Sie Parameter einstellen. Beim Posten von Nachrichten können Sie antworten, indem Sie "message ID" in "replyTo" schreiben.
Der Bot selbst mag die vom Bot geposteten Nachrichten.
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())
Wenn Sie es ausführen, sollte es dem Bot gefallen.
like = url + '/posts/' + str(id) + '/like'
Sie können verschiedene Dinge tun, indem Sie URL-Parameter festlegen. Add like
https://typetalk.com/api/v1/topics/:topicId/posts/:postId/like
Es ist geworden.
Das Obige ist die Einführung in die Verwendung.
Sie können noch viele andere Dinge tun, z. B. Nachrichten löschen und angehängte Dateien herunterladen.
Sie können die verschiedenen Parameter in der Schublade "Typetalk API" links neben der Typetalk API-Dokumentation (https://developer.nulab.com/de/docs/typetalk/) sehen.
Mit der obigen Methode kann nur auf die Bereichs-APIs topic.post
und topic.read
zugegriffen werden.
Recommended Posts