Mastodon 다중 인스턴스 알림을 푸시 알림
목적
마스트돈 복수 인스턴스의 각종 통지를 iPhone에 푸시 통지하고 싶다.
(이미 복수 인스턴스 대응의 앱이 나오고 있으므로 필요성은 희미해져 버렸지만 공부를 위해서.)
이용언어・서비스
리포지토리
이하의 2개로 나누어 실장. 하나로 정리해도 문제는 없을 것.
mastodon-notifications-sqs
다중 마스트돈 인스턴스에 대해 StreamingAPI를 이용하여 notifications를 기다린다.
notification을 얻으면 AWS SQS 큐에 메시지를 푸시합니다.
sqs-to-ifttt-webhook
AWS SQS의 특정 대기열에서 정기적으로 메시지를 검색합니다.
취득한 내용을 value1이라는 POST 데이터로서 IFTTT의 webhookURL에 대해 POST한다.
아래 준비
AWS SQS 대기열 준비
AWS Management Console-> Simple Queue Service에서 큐를 생성합니다.
설정 내용은 임의.
작성 후 큐의 URL(예: https://sqs.ap-northeast-1.amazonaws.com/111111111/hogehoge
)을 확인해 둔다. 이 URL에 대한 메시지를 POST/GET합니다.
IFTTT 서비스 설정
IFTTT의 maker webhooks를 이용 가능 상태로 하고,
"webhook 수신 -> 푸시 알림"이벤트를 만듭니다.
푸시 송신 내용은 이번에는 value1만을 지정한다.
Webhook의 URL은 작성한 Webhook의 상세에 있는 URL에 대해서 브라우저로 액세스하면 이용 방법을 알 수 있다.
URL의 일부에 event명, 쿼리에 비밀이 들어가서 인증하고 있다.
[webhook-URL例]
https://maker.ifttt.com/trigger/[event_name]/with/key/[secret_key]
AWS 자격 증명 설정
SQS가 이용할 수 있는 AWS의 IAM 사용자의 자격 증명을 서버의 ~/.aws/credentials에 기술한다.
[default]
aws_access_key_id = xxxxxxxxxxxx
aws_secret_access_key = xxxxxxxxxxxxxx
알림을 받고자 하는 인스턴스의 자격 증명 가져오기
moru3/mastodon-notifications-sqs의 README에도 기술하고 있지만,
마스트돈의 API를 이용하기 위해서는 대상의 인스턴스에 대해 client_id와 client_secret를 취득할 필요가 있다.
curl로 취득 가능.
# 取得
curl -X POST -sS https://xxxxxxxxxxxxxx/api/v1/apps \
-F "client_name=xxxxxxxxxx" \
-F "redirect_uris=urn:ietf:wg:oauth:2.0:oob" \
-F "scopes=read write follow"
# 結果
{"id":1,"redirect_uri":"urn:ietf:wg:oauth:2.0:oob","client_id":"xxxxxxxxxxxxxx","client_secret":"xxxxxxxxxxxxxxxxxxxxx"}%
사용
실행 환경에서 다음을 실행합니다.
실행하기 전에 setting.yml을 만듭니다.
AWS SQS 대기열 준비
AWS Management Console-> Simple Queue Service에서 큐를 생성합니다.
설정 내용은 임의.
작성 후 큐의 URL(예:
https://sqs.ap-northeast-1.amazonaws.com/111111111/hogehoge
)을 확인해 둔다. 이 URL에 대한 메시지를 POST/GET합니다.IFTTT 서비스 설정
IFTTT의 maker webhooks를 이용 가능 상태로 하고,
"webhook 수신 -> 푸시 알림"이벤트를 만듭니다.
푸시 송신 내용은 이번에는 value1만을 지정한다.
Webhook의 URL은 작성한 Webhook의 상세에 있는 URL에 대해서 브라우저로 액세스하면 이용 방법을 알 수 있다.
URL의 일부에 event명, 쿼리에 비밀이 들어가서 인증하고 있다.
[webhook-URL例]
https://maker.ifttt.com/trigger/[event_name]/with/key/[secret_key]
AWS 자격 증명 설정
SQS가 이용할 수 있는 AWS의 IAM 사용자의 자격 증명을 서버의 ~/.aws/credentials에 기술한다.
[default]
aws_access_key_id = xxxxxxxxxxxx
aws_secret_access_key = xxxxxxxxxxxxxx
알림을 받고자 하는 인스턴스의 자격 증명 가져오기
moru3/mastodon-notifications-sqs의 README에도 기술하고 있지만,
마스트돈의 API를 이용하기 위해서는 대상의 인스턴스에 대해 client_id와 client_secret를 취득할 필요가 있다.
curl로 취득 가능.
# 取得
curl -X POST -sS https://xxxxxxxxxxxxxx/api/v1/apps \
-F "client_name=xxxxxxxxxx" \
-F "redirect_uris=urn:ietf:wg:oauth:2.0:oob" \
-F "scopes=read write follow"
# 結果
{"id":1,"redirect_uri":"urn:ietf:wg:oauth:2.0:oob","client_id":"xxxxxxxxxxxxxx","client_secret":"xxxxxxxxxxxxxxxxxxxxx"}%
사용
실행 환경에서 다음을 실행합니다.
실행하기 전에 setting.yml을 만듭니다.
조금 움직여 본 소감
Reference
이 문제에 관하여(Mastodon 다중 인스턴스 알림을 푸시 알림), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/moru3/items/b71a78c9e71af0901487텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)