-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
機能要望:Discord新着通知機能 #45
Comments
最初の説明に漏れがありました。 Discordサバの方でボタン付けたら良いんじゃない?という話になり、そこの説明までテキストでやることに限界を感じたため、サンプルコードを添付します。 import json
from urllib.request import Request, urlopen
webhook_url = 'https://discord.com/api/webhooks/xxxxx'
data = {
"content": "これは送信テストです\nhttps://healthy-person-emulator.org/archives/26852",
"components": [
{
"type": 1,
"components": [
{
"type": 2,
"style": 5,
"label": "𝕏",
"url": "https://twitter.com/intent/post?url=https%3A%2F%2Fhealthy-person-emulator.org%2Farchives%2F26852&text=%E8%A8%80%E8%91%89%E3%81%AF%E4%BA%BA%E6%A0%BC%E4%BF%AE%E6%AD%A3%E3%83%91%E3%83%83%E3%83%81%E3%81%A7%E3%81%82%E3%82%8B+%E5%81%A5%E5%B8%B8%E8%80%85%E3%82%A8%E3%83%9F%E3%83%A5%E3%83%AC%E3%83%BC%E3%82%BF%E4%BA%8B%E4%BE%8B%E9%9B%86+&via=helthypersonemu"
}, # 以下同様に、横に5つまでコピペで増やせる
{
"type": 2,
"style": 5,
"label": "misskey",
"url": "https://misskeyshare.link/share.html?text=%E8%A8%80%E8%91%89%E3%81%AF%E4%BA%BA%E6%A0%BC%E4%BF%AE%E6%AD%A3%E3%83%91%E3%83%83%E3%83%81%E3%81%A7%E3%81%82%E3%82%8B+%E5%81%A5%E5%B8%B8%E8%80%85%E3%82%A8%E3%83%9F%E3%83%A5%E3%83%AC%E3%83%BC%E3%82%BF%E4%BA%8B%E4%BE%8B%E9%9B%86+&url=https://healthy-person-emulator.org/archives/26852",
"emoji": {
"id": "1238053804503597066",
"name": "",
"animated": False
} # サバ絵文字の追加も可能 Unicode絵文字だったら "name": "😀"だけの形式
}
]
},
{ # こうすると縦に5つまで増やせる
"type": 1,
"components": [
{
"type": 2,
"style": 5,
"label": "row2",
"url": "https://google.com"
}
]
}
]
}
def post_discord(webhook_url, data):
headers = {
"Content-Type": "application/json",
"User-Agent": "_Python-urllib/3.12",
}
request = Request(
webhook_url,
data=json.dumps(data).encode(),
headers=headers,
)
with urlopen(request) as response:
response_body = response.read().decode("utf-8")
print(response_body)
if __name__ == "__main__":
post_discord(webhook_url, data) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Xの仕様変更により機能しなくなった新着通知機能の代替として、サイト側から直接Discordに投稿する機能が欲しいです。
具体的な手順
・Discordの送信先チャンネルの設定画面を開き、(PC版なら)"連携サービス/ウェブフック/新しいウェブフック"に進む。
・発言に使用したい名前とアイコンを設定し、"ウェブフックURLをコピー"を選択。
・"https://discord.com/api/webhooks/<数字>/<英数字>"形式のURLが得られるので、非公開な場所に保存。これが流出すると該当チャンネルに無制限に連投などされ、送信者を特定できない。
・上記URLにapplication/json形式で下記をPOSTする機能を、記事生成時に呼び出す。
{ "content": "<記事URL>" }
・望むのであれば記事更新時にも同様の処理をする。URLの前後にテキストを追加しても良い。"\n"で改行を入れても良い。
The text was updated successfully, but these errors were encountered: