Twitter의 Account Activity API를 사용하기 위해 한 일
9366 단어 트위터AccountActivityApiTwitterAPI
소개
트위터의 Account Activity API를 사용하기 위해 한 일을 작성합니다.
조금 시간이 지나서 쓰고 있기 때문에 잊거나 틀린 곳이 있을지도 모릅니다.
환경
Debian9
apache2.4
python3.5
애플리케이션 작성
여기에서 만들자.
권한은 Read, write, and direct messages여야 합니다.
액세스를 위한 신청 및 환경 이름 설정
여기에서 신청합시다.
이 API를 사용하여 무엇을 하는지 300자 이상의 영문으로 설명해야 합니다.
안전하게 신청하면 트위터에서 이메일을 받게 됩니다.
Dev Environments 페이지에서 환경 이름을 설정합시다. 이 환경 이름은 Webhook URL을 등록할 때 사용합니다.
서버 준비
원하는 방식으로 서버를 준비합시다. 저자는 ConoHa의 VPS를 사용했습니다.
다음 명령을 실행하여 필요한 것을 정렬합니다.
sudo apt update
sudo apt upgrade
sudo apt install python3 python3-pip
sudo pip3 install requests requests_oauthlib flask
sudo apt install apache2 libapache2-mod-wsgi-py3
sudo apt install certbot python-certbot-apache
도메인 준비
원하는 방식으로 도메인을 준비하세요. 필자는 이름.com에서 "6~9자리 숫자.xyz"의 염가 도메인을 취득했습니다.
DNS 레코드 설정도 잊지 마세요.
웹 서버 준비
apache의 기본 설정은 완료되었다고 가정합니다.
/etc/apache/envvars 의 LANG=C 가 있는 곳을 LANG=en_US.UTF-8 또는 LANG=ko_JP.UTF-8 로 변경합시다.
그런 다음 certbot에서 HTTPS로 만듭니다.
다음의 커멘드를 실행해 순서대로 작업하면 HTTPS화할 수 있을 것입니다만・・・
sudo certbot --apache
이런 오류가 발생합니다.
"Client with the currently selected authenticator does not support any combination of challenges that will satisfy the CA."
TLS-SNI 검증을 무효화했기 때문이라고 합니다만, 솔직히 잘 모르겠습니다.
대신 다음 명령으로 HTTPS화할 수 있습니다.
sudo certbot --authenticator webroot -w <path> -d <domain> --installer apache
문서 루트가/var/www/html이고 도메인이 hogehoge.com인 경우 이런 식입니다.
sudo certbot --authenticator webroot -w /var/www/html -d hogehoge.com --installer apache
그런 다음 권장 서버 구성을 위해/etc/letsencrypt/options-ssl-apache.conf의 일부를 다음과 같이 변경합니다.
SSLProtocol all -SSLv2 -SSLv3 -TLSV1
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES128-SHA256:AES128-SHA:AES256-GCM-SHA384:AES256-SHA256:AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:DES-CBC3-SHA
SSLHonorCipherOrder on
SSLCompression off
설정을 반영합시다.
sudo systemctl restart apache2
이것으로 HTTPS화가 완료되었습니다.
wsgi를 사용할 수 있도록
Python3 & Flask를 사용하기 때문입니다.
다음 명령으로 활성화합시다.
sudo a2enmod wsgi
sudo systemctl reload apache2
그런 다음 apache 설정 파일을 만듭니다.
프로그램을/home/user/twitter 아래에 두는 경우, 이와 같이 됩니다.
/etc/apache2/conf-available/twitter.conf<Directory "/home/user/twitter">
Require all granted
</Directory>
WSGIPythonPath /home/user/twitter
WSGIScriptAlias / /home/user/twitter/app.py
여기도 활성화합시다.
sudo a2enconf twitter
sudo systemctl reload apache2
CRC에 대한 응답
Webhook URL 등록시 CRC가 전송되므로 먼저 CRC에 응답하는 프로그램을 만들어 둡니다.
/home/user/twitter/app.pyfrom flask import Flask, request
import base64
import hashlib
import hmac
import json
application = Flask("application-name")
consumer_secret = 'xxxxx'
@application.route('/webhooks/twitter', methods = ['GET'])
def get():
if 'crc_token' in request.args and len(request.args.get('crc_token')) == 48:
crc_token = request.args.get('crc_token')
sha256_hash_digest = hmac.new(consumer_secret.encode(), msg = crc_token.encode(), digestmod = hashlib.sha256).digest()
response_token = 'sha256=' + base64.b64encode(sha256_hash_digest).decode()
response = {'response_token': response_token}
return json.dumps(response), 200, {'Content-Type': 'application/json'}
return 'No Content', 204, {'Content-Type': 'text/plain'}
이것을 저장하고 적절한 권한을 부여하십시오.
sudo chmod 755 /home/user/twitter/app.py
만약을 위해 apache의 재기동도 해보자.
sudo systemctl restart apache2
Webhook URL 등록 및 Webhook에서 이벤트를 수신하는 애플리케이션 추가
등록하는 URL은 CRC에 대한 응답으로 만든 프로그램의 다음 부분에서 결정됩니다.
@application.route('/webhooks/twitter', method = [GET])
이것은 트위터 가이드와 마찬가지로 만들었습니다.
이 경우 URL은 htps : // 허벅지. 코 m / ぇ b 호오 ks /와 r입니다.
그럼 파이썬 3의 대화 모드에서 갑니다.
consumer_key, consumer_secret, access_token, access_token_secret에는 작성한 어플리케이션의 것을 넣어 주세요.
url의 :env_name 부분은 환경명의 설정으로 설정한 것을 넣어 주세요.
>>> from requests_oauthlib import OAuth1Sesstion
>>> twitter = OAuth1Sesstion(consumer_key, consumer_secret, access_token, access_token_secret)
>>>
>>> url = 'https://api.twitter.com/1.1/account_activity/all/:env_name/webhooks.json'
>>> response = twitter.post(url, params = {'url': 'https://hogehoge.com/webhooks/twitter'})
>>> # 成功すれば response == <Response [200]>
>>> # response.textでwebhook_idが確認できる
>>>
>>> url = 'https://api.twitter.com/1.1/account_activity/all/:env_name/subscriptions.json'
>>> response = twitter.post(url)
>>> # 成功すれば response == <Response [204]>
수고하셨습니다.
이제 마침내 Account Activity API를 사용할 수 있습니다.
Reference
이 문제에 관하여(Twitter의 Account Activity API를 사용하기 위해 한 일), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/akarinS/items/821e06c85d578b8e0f65
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Debian9
apache2.4
python3.5
애플리케이션 작성
여기에서 만들자.
권한은 Read, write, and direct messages여야 합니다.
액세스를 위한 신청 및 환경 이름 설정
여기에서 신청합시다.
이 API를 사용하여 무엇을 하는지 300자 이상의 영문으로 설명해야 합니다.
안전하게 신청하면 트위터에서 이메일을 받게 됩니다.
Dev Environments 페이지에서 환경 이름을 설정합시다. 이 환경 이름은 Webhook URL을 등록할 때 사용합니다.
서버 준비
원하는 방식으로 서버를 준비합시다. 저자는 ConoHa의 VPS를 사용했습니다.
다음 명령을 실행하여 필요한 것을 정렬합니다.
sudo apt update
sudo apt upgrade
sudo apt install python3 python3-pip
sudo pip3 install requests requests_oauthlib flask
sudo apt install apache2 libapache2-mod-wsgi-py3
sudo apt install certbot python-certbot-apache
도메인 준비
원하는 방식으로 도메인을 준비하세요. 필자는 이름.com에서 "6~9자리 숫자.xyz"의 염가 도메인을 취득했습니다.
DNS 레코드 설정도 잊지 마세요.
웹 서버 준비
apache의 기본 설정은 완료되었다고 가정합니다.
/etc/apache/envvars 의 LANG=C 가 있는 곳을 LANG=en_US.UTF-8 또는 LANG=ko_JP.UTF-8 로 변경합시다.
그런 다음 certbot에서 HTTPS로 만듭니다.
다음의 커멘드를 실행해 순서대로 작업하면 HTTPS화할 수 있을 것입니다만・・・
sudo certbot --apache
이런 오류가 발생합니다.
"Client with the currently selected authenticator does not support any combination of challenges that will satisfy the CA."
TLS-SNI 검증을 무효화했기 때문이라고 합니다만, 솔직히 잘 모르겠습니다.
대신 다음 명령으로 HTTPS화할 수 있습니다.
sudo certbot --authenticator webroot -w <path> -d <domain> --installer apache
문서 루트가/var/www/html이고 도메인이 hogehoge.com인 경우 이런 식입니다.
sudo certbot --authenticator webroot -w /var/www/html -d hogehoge.com --installer apache
그런 다음 권장 서버 구성을 위해/etc/letsencrypt/options-ssl-apache.conf의 일부를 다음과 같이 변경합니다.
SSLProtocol all -SSLv2 -SSLv3 -TLSV1
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES128-SHA256:AES128-SHA:AES256-GCM-SHA384:AES256-SHA256:AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:DES-CBC3-SHA
SSLHonorCipherOrder on
SSLCompression off
설정을 반영합시다.
sudo systemctl restart apache2
이것으로 HTTPS화가 완료되었습니다.
wsgi를 사용할 수 있도록
Python3 & Flask를 사용하기 때문입니다.
다음 명령으로 활성화합시다.
sudo a2enmod wsgi
sudo systemctl reload apache2
그런 다음 apache 설정 파일을 만듭니다.
프로그램을/home/user/twitter 아래에 두는 경우, 이와 같이 됩니다.
/etc/apache2/conf-available/twitter.conf<Directory "/home/user/twitter">
Require all granted
</Directory>
WSGIPythonPath /home/user/twitter
WSGIScriptAlias / /home/user/twitter/app.py
여기도 활성화합시다.
sudo a2enconf twitter
sudo systemctl reload apache2
CRC에 대한 응답
Webhook URL 등록시 CRC가 전송되므로 먼저 CRC에 응답하는 프로그램을 만들어 둡니다.
/home/user/twitter/app.pyfrom flask import Flask, request
import base64
import hashlib
import hmac
import json
application = Flask("application-name")
consumer_secret = 'xxxxx'
@application.route('/webhooks/twitter', methods = ['GET'])
def get():
if 'crc_token' in request.args and len(request.args.get('crc_token')) == 48:
crc_token = request.args.get('crc_token')
sha256_hash_digest = hmac.new(consumer_secret.encode(), msg = crc_token.encode(), digestmod = hashlib.sha256).digest()
response_token = 'sha256=' + base64.b64encode(sha256_hash_digest).decode()
response = {'response_token': response_token}
return json.dumps(response), 200, {'Content-Type': 'application/json'}
return 'No Content', 204, {'Content-Type': 'text/plain'}
이것을 저장하고 적절한 권한을 부여하십시오.
sudo chmod 755 /home/user/twitter/app.py
만약을 위해 apache의 재기동도 해보자.
sudo systemctl restart apache2
Webhook URL 등록 및 Webhook에서 이벤트를 수신하는 애플리케이션 추가
등록하는 URL은 CRC에 대한 응답으로 만든 프로그램의 다음 부분에서 결정됩니다.
@application.route('/webhooks/twitter', method = [GET])
이것은 트위터 가이드와 마찬가지로 만들었습니다.
이 경우 URL은 htps : // 허벅지. 코 m / ぇ b 호오 ks /와 r입니다.
그럼 파이썬 3의 대화 모드에서 갑니다.
consumer_key, consumer_secret, access_token, access_token_secret에는 작성한 어플리케이션의 것을 넣어 주세요.
url의 :env_name 부분은 환경명의 설정으로 설정한 것을 넣어 주세요.
>>> from requests_oauthlib import OAuth1Sesstion
>>> twitter = OAuth1Sesstion(consumer_key, consumer_secret, access_token, access_token_secret)
>>>
>>> url = 'https://api.twitter.com/1.1/account_activity/all/:env_name/webhooks.json'
>>> response = twitter.post(url, params = {'url': 'https://hogehoge.com/webhooks/twitter'})
>>> # 成功すれば response == <Response [200]>
>>> # response.textでwebhook_idが確認できる
>>>
>>> url = 'https://api.twitter.com/1.1/account_activity/all/:env_name/subscriptions.json'
>>> response = twitter.post(url)
>>> # 成功すれば response == <Response [204]>
수고하셨습니다.
이제 마침내 Account Activity API를 사용할 수 있습니다.
Reference
이 문제에 관하여(Twitter의 Account Activity API를 사용하기 위해 한 일), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/akarinS/items/821e06c85d578b8e0f65
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
여기에서 신청합시다.
이 API를 사용하여 무엇을 하는지 300자 이상의 영문으로 설명해야 합니다.
안전하게 신청하면 트위터에서 이메일을 받게 됩니다.
Dev Environments 페이지에서 환경 이름을 설정합시다. 이 환경 이름은 Webhook URL을 등록할 때 사용합니다.
서버 준비
원하는 방식으로 서버를 준비합시다. 저자는 ConoHa의 VPS를 사용했습니다.
다음 명령을 실행하여 필요한 것을 정렬합니다.
sudo apt update
sudo apt upgrade
sudo apt install python3 python3-pip
sudo pip3 install requests requests_oauthlib flask
sudo apt install apache2 libapache2-mod-wsgi-py3
sudo apt install certbot python-certbot-apache
도메인 준비
원하는 방식으로 도메인을 준비하세요. 필자는 이름.com에서 "6~9자리 숫자.xyz"의 염가 도메인을 취득했습니다.
DNS 레코드 설정도 잊지 마세요.
웹 서버 준비
apache의 기본 설정은 완료되었다고 가정합니다.
/etc/apache/envvars 의 LANG=C 가 있는 곳을 LANG=en_US.UTF-8 또는 LANG=ko_JP.UTF-8 로 변경합시다.
그런 다음 certbot에서 HTTPS로 만듭니다.
다음의 커멘드를 실행해 순서대로 작업하면 HTTPS화할 수 있을 것입니다만・・・
sudo certbot --apache
이런 오류가 발생합니다.
"Client with the currently selected authenticator does not support any combination of challenges that will satisfy the CA."
TLS-SNI 검증을 무효화했기 때문이라고 합니다만, 솔직히 잘 모르겠습니다.
대신 다음 명령으로 HTTPS화할 수 있습니다.
sudo certbot --authenticator webroot -w <path> -d <domain> --installer apache
문서 루트가/var/www/html이고 도메인이 hogehoge.com인 경우 이런 식입니다.
sudo certbot --authenticator webroot -w /var/www/html -d hogehoge.com --installer apache
그런 다음 권장 서버 구성을 위해/etc/letsencrypt/options-ssl-apache.conf의 일부를 다음과 같이 변경합니다.
SSLProtocol all -SSLv2 -SSLv3 -TLSV1
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES128-SHA256:AES128-SHA:AES256-GCM-SHA384:AES256-SHA256:AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:DES-CBC3-SHA
SSLHonorCipherOrder on
SSLCompression off
설정을 반영합시다.
sudo systemctl restart apache2
이것으로 HTTPS화가 완료되었습니다.
wsgi를 사용할 수 있도록
Python3 & Flask를 사용하기 때문입니다.
다음 명령으로 활성화합시다.
sudo a2enmod wsgi
sudo systemctl reload apache2
그런 다음 apache 설정 파일을 만듭니다.
프로그램을/home/user/twitter 아래에 두는 경우, 이와 같이 됩니다.
/etc/apache2/conf-available/twitter.conf<Directory "/home/user/twitter">
Require all granted
</Directory>
WSGIPythonPath /home/user/twitter
WSGIScriptAlias / /home/user/twitter/app.py
여기도 활성화합시다.
sudo a2enconf twitter
sudo systemctl reload apache2
CRC에 대한 응답
Webhook URL 등록시 CRC가 전송되므로 먼저 CRC에 응답하는 프로그램을 만들어 둡니다.
/home/user/twitter/app.pyfrom flask import Flask, request
import base64
import hashlib
import hmac
import json
application = Flask("application-name")
consumer_secret = 'xxxxx'
@application.route('/webhooks/twitter', methods = ['GET'])
def get():
if 'crc_token' in request.args and len(request.args.get('crc_token')) == 48:
crc_token = request.args.get('crc_token')
sha256_hash_digest = hmac.new(consumer_secret.encode(), msg = crc_token.encode(), digestmod = hashlib.sha256).digest()
response_token = 'sha256=' + base64.b64encode(sha256_hash_digest).decode()
response = {'response_token': response_token}
return json.dumps(response), 200, {'Content-Type': 'application/json'}
return 'No Content', 204, {'Content-Type': 'text/plain'}
이것을 저장하고 적절한 권한을 부여하십시오.
sudo chmod 755 /home/user/twitter/app.py
만약을 위해 apache의 재기동도 해보자.
sudo systemctl restart apache2
Webhook URL 등록 및 Webhook에서 이벤트를 수신하는 애플리케이션 추가
등록하는 URL은 CRC에 대한 응답으로 만든 프로그램의 다음 부분에서 결정됩니다.
@application.route('/webhooks/twitter', method = [GET])
이것은 트위터 가이드와 마찬가지로 만들었습니다.
이 경우 URL은 htps : // 허벅지. 코 m / ぇ b 호오 ks /와 r입니다.
그럼 파이썬 3의 대화 모드에서 갑니다.
consumer_key, consumer_secret, access_token, access_token_secret에는 작성한 어플리케이션의 것을 넣어 주세요.
url의 :env_name 부분은 환경명의 설정으로 설정한 것을 넣어 주세요.
>>> from requests_oauthlib import OAuth1Sesstion
>>> twitter = OAuth1Sesstion(consumer_key, consumer_secret, access_token, access_token_secret)
>>>
>>> url = 'https://api.twitter.com/1.1/account_activity/all/:env_name/webhooks.json'
>>> response = twitter.post(url, params = {'url': 'https://hogehoge.com/webhooks/twitter'})
>>> # 成功すれば response == <Response [200]>
>>> # response.textでwebhook_idが確認できる
>>>
>>> url = 'https://api.twitter.com/1.1/account_activity/all/:env_name/subscriptions.json'
>>> response = twitter.post(url)
>>> # 成功すれば response == <Response [204]>
수고하셨습니다.
이제 마침내 Account Activity API를 사용할 수 있습니다.
Reference
이 문제에 관하여(Twitter의 Account Activity API를 사용하기 위해 한 일), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/akarinS/items/821e06c85d578b8e0f65
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
sudo apt update
sudo apt upgrade
sudo apt install python3 python3-pip
sudo pip3 install requests requests_oauthlib flask
sudo apt install apache2 libapache2-mod-wsgi-py3
sudo apt install certbot python-certbot-apache
원하는 방식으로 도메인을 준비하세요. 필자는 이름.com에서 "6~9자리 숫자.xyz"의 염가 도메인을 취득했습니다.
DNS 레코드 설정도 잊지 마세요.
웹 서버 준비
apache의 기본 설정은 완료되었다고 가정합니다.
/etc/apache/envvars 의 LANG=C 가 있는 곳을 LANG=en_US.UTF-8 또는 LANG=ko_JP.UTF-8 로 변경합시다.
그런 다음 certbot에서 HTTPS로 만듭니다.
다음의 커멘드를 실행해 순서대로 작업하면 HTTPS화할 수 있을 것입니다만・・・
sudo certbot --apache
이런 오류가 발생합니다.
"Client with the currently selected authenticator does not support any combination of challenges that will satisfy the CA."
TLS-SNI 검증을 무효화했기 때문이라고 합니다만, 솔직히 잘 모르겠습니다.
대신 다음 명령으로 HTTPS화할 수 있습니다.
sudo certbot --authenticator webroot -w <path> -d <domain> --installer apache
문서 루트가/var/www/html이고 도메인이 hogehoge.com인 경우 이런 식입니다.
sudo certbot --authenticator webroot -w /var/www/html -d hogehoge.com --installer apache
그런 다음 권장 서버 구성을 위해/etc/letsencrypt/options-ssl-apache.conf의 일부를 다음과 같이 변경합니다.
SSLProtocol all -SSLv2 -SSLv3 -TLSV1
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES128-SHA256:AES128-SHA:AES256-GCM-SHA384:AES256-SHA256:AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:DES-CBC3-SHA
SSLHonorCipherOrder on
SSLCompression off
설정을 반영합시다.
sudo systemctl restart apache2
이것으로 HTTPS화가 완료되었습니다.
wsgi를 사용할 수 있도록
Python3 & Flask를 사용하기 때문입니다.
다음 명령으로 활성화합시다.
sudo a2enmod wsgi
sudo systemctl reload apache2
그런 다음 apache 설정 파일을 만듭니다.
프로그램을/home/user/twitter 아래에 두는 경우, 이와 같이 됩니다.
/etc/apache2/conf-available/twitter.conf<Directory "/home/user/twitter">
Require all granted
</Directory>
WSGIPythonPath /home/user/twitter
WSGIScriptAlias / /home/user/twitter/app.py
여기도 활성화합시다.
sudo a2enconf twitter
sudo systemctl reload apache2
CRC에 대한 응답
Webhook URL 등록시 CRC가 전송되므로 먼저 CRC에 응답하는 프로그램을 만들어 둡니다.
/home/user/twitter/app.pyfrom flask import Flask, request
import base64
import hashlib
import hmac
import json
application = Flask("application-name")
consumer_secret = 'xxxxx'
@application.route('/webhooks/twitter', methods = ['GET'])
def get():
if 'crc_token' in request.args and len(request.args.get('crc_token')) == 48:
crc_token = request.args.get('crc_token')
sha256_hash_digest = hmac.new(consumer_secret.encode(), msg = crc_token.encode(), digestmod = hashlib.sha256).digest()
response_token = 'sha256=' + base64.b64encode(sha256_hash_digest).decode()
response = {'response_token': response_token}
return json.dumps(response), 200, {'Content-Type': 'application/json'}
return 'No Content', 204, {'Content-Type': 'text/plain'}
이것을 저장하고 적절한 권한을 부여하십시오.
sudo chmod 755 /home/user/twitter/app.py
만약을 위해 apache의 재기동도 해보자.
sudo systemctl restart apache2
Webhook URL 등록 및 Webhook에서 이벤트를 수신하는 애플리케이션 추가
등록하는 URL은 CRC에 대한 응답으로 만든 프로그램의 다음 부분에서 결정됩니다.
@application.route('/webhooks/twitter', method = [GET])
이것은 트위터 가이드와 마찬가지로 만들었습니다.
이 경우 URL은 htps : // 허벅지. 코 m / ぇ b 호오 ks /와 r입니다.
그럼 파이썬 3의 대화 모드에서 갑니다.
consumer_key, consumer_secret, access_token, access_token_secret에는 작성한 어플리케이션의 것을 넣어 주세요.
url의 :env_name 부분은 환경명의 설정으로 설정한 것을 넣어 주세요.
>>> from requests_oauthlib import OAuth1Sesstion
>>> twitter = OAuth1Sesstion(consumer_key, consumer_secret, access_token, access_token_secret)
>>>
>>> url = 'https://api.twitter.com/1.1/account_activity/all/:env_name/webhooks.json'
>>> response = twitter.post(url, params = {'url': 'https://hogehoge.com/webhooks/twitter'})
>>> # 成功すれば response == <Response [200]>
>>> # response.textでwebhook_idが確認できる
>>>
>>> url = 'https://api.twitter.com/1.1/account_activity/all/:env_name/subscriptions.json'
>>> response = twitter.post(url)
>>> # 成功すれば response == <Response [204]>
수고하셨습니다.
이제 마침내 Account Activity API를 사용할 수 있습니다.
Reference
이 문제에 관하여(Twitter의 Account Activity API를 사용하기 위해 한 일), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/akarinS/items/821e06c85d578b8e0f65
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
sudo certbot --apache
sudo certbot --authenticator webroot -w <path> -d <domain> --installer apache
sudo certbot --authenticator webroot -w /var/www/html -d hogehoge.com --installer apache
SSLProtocol all -SSLv2 -SSLv3 -TLSV1
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES128-SHA256:AES128-SHA:AES256-GCM-SHA384:AES256-SHA256:AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:DES-CBC3-SHA
SSLHonorCipherOrder on
SSLCompression off
sudo systemctl restart apache2
Python3 & Flask를 사용하기 때문입니다.
다음 명령으로 활성화합시다.
sudo a2enmod wsgi
sudo systemctl reload apache2
그런 다음 apache 설정 파일을 만듭니다.
프로그램을/home/user/twitter 아래에 두는 경우, 이와 같이 됩니다.
/etc/apache2/conf-available/twitter.conf
<Directory "/home/user/twitter">
Require all granted
</Directory>
WSGIPythonPath /home/user/twitter
WSGIScriptAlias / /home/user/twitter/app.py
여기도 활성화합시다.
sudo a2enconf twitter
sudo systemctl reload apache2
CRC에 대한 응답
Webhook URL 등록시 CRC가 전송되므로 먼저 CRC에 응답하는 프로그램을 만들어 둡니다.
/home/user/twitter/app.pyfrom flask import Flask, request
import base64
import hashlib
import hmac
import json
application = Flask("application-name")
consumer_secret = 'xxxxx'
@application.route('/webhooks/twitter', methods = ['GET'])
def get():
if 'crc_token' in request.args and len(request.args.get('crc_token')) == 48:
crc_token = request.args.get('crc_token')
sha256_hash_digest = hmac.new(consumer_secret.encode(), msg = crc_token.encode(), digestmod = hashlib.sha256).digest()
response_token = 'sha256=' + base64.b64encode(sha256_hash_digest).decode()
response = {'response_token': response_token}
return json.dumps(response), 200, {'Content-Type': 'application/json'}
return 'No Content', 204, {'Content-Type': 'text/plain'}
이것을 저장하고 적절한 권한을 부여하십시오.
sudo chmod 755 /home/user/twitter/app.py
만약을 위해 apache의 재기동도 해보자.
sudo systemctl restart apache2
Webhook URL 등록 및 Webhook에서 이벤트를 수신하는 애플리케이션 추가
등록하는 URL은 CRC에 대한 응답으로 만든 프로그램의 다음 부분에서 결정됩니다.
@application.route('/webhooks/twitter', method = [GET])
이것은 트위터 가이드와 마찬가지로 만들었습니다.
이 경우 URL은 htps : // 허벅지. 코 m / ぇ b 호오 ks /와 r입니다.
그럼 파이썬 3의 대화 모드에서 갑니다.
consumer_key, consumer_secret, access_token, access_token_secret에는 작성한 어플리케이션의 것을 넣어 주세요.
url의 :env_name 부분은 환경명의 설정으로 설정한 것을 넣어 주세요.
>>> from requests_oauthlib import OAuth1Sesstion
>>> twitter = OAuth1Sesstion(consumer_key, consumer_secret, access_token, access_token_secret)
>>>
>>> url = 'https://api.twitter.com/1.1/account_activity/all/:env_name/webhooks.json'
>>> response = twitter.post(url, params = {'url': 'https://hogehoge.com/webhooks/twitter'})
>>> # 成功すれば response == <Response [200]>
>>> # response.textでwebhook_idが確認できる
>>>
>>> url = 'https://api.twitter.com/1.1/account_activity/all/:env_name/subscriptions.json'
>>> response = twitter.post(url)
>>> # 成功すれば response == <Response [204]>
수고하셨습니다.
이제 마침내 Account Activity API를 사용할 수 있습니다.
Reference
이 문제에 관하여(Twitter의 Account Activity API를 사용하기 위해 한 일), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/akarinS/items/821e06c85d578b8e0f65
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
from flask import Flask, request
import base64
import hashlib
import hmac
import json
application = Flask("application-name")
consumer_secret = 'xxxxx'
@application.route('/webhooks/twitter', methods = ['GET'])
def get():
if 'crc_token' in request.args and len(request.args.get('crc_token')) == 48:
crc_token = request.args.get('crc_token')
sha256_hash_digest = hmac.new(consumer_secret.encode(), msg = crc_token.encode(), digestmod = hashlib.sha256).digest()
response_token = 'sha256=' + base64.b64encode(sha256_hash_digest).decode()
response = {'response_token': response_token}
return json.dumps(response), 200, {'Content-Type': 'application/json'}
return 'No Content', 204, {'Content-Type': 'text/plain'}
sudo chmod 755 /home/user/twitter/app.py
sudo systemctl restart apache2
등록하는 URL은 CRC에 대한 응답으로 만든 프로그램의 다음 부분에서 결정됩니다.
@application.route('/webhooks/twitter', method = [GET])
이것은 트위터 가이드와 마찬가지로 만들었습니다.
이 경우 URL은 htps : // 허벅지. 코 m / ぇ b 호오 ks /와 r입니다.
그럼 파이썬 3의 대화 모드에서 갑니다.
consumer_key, consumer_secret, access_token, access_token_secret에는 작성한 어플리케이션의 것을 넣어 주세요.
url의 :env_name 부분은 환경명의 설정으로 설정한 것을 넣어 주세요.
>>> from requests_oauthlib import OAuth1Sesstion
>>> twitter = OAuth1Sesstion(consumer_key, consumer_secret, access_token, access_token_secret)
>>>
>>> url = 'https://api.twitter.com/1.1/account_activity/all/:env_name/webhooks.json'
>>> response = twitter.post(url, params = {'url': 'https://hogehoge.com/webhooks/twitter'})
>>> # 成功すれば response == <Response [200]>
>>> # response.textでwebhook_idが確認できる
>>>
>>> url = 'https://api.twitter.com/1.1/account_activity/all/:env_name/subscriptions.json'
>>> response = twitter.post(url)
>>> # 成功すれば response == <Response [204]>
수고하셨습니다.
이제 마침내 Account Activity API를 사용할 수 있습니다.
Reference
이 문제에 관하여(Twitter의 Account Activity API를 사용하기 위해 한 일), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/akarinS/items/821e06c85d578b8e0f65
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Twitter의 Account Activity API를 사용하기 위해 한 일), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/akarinS/items/821e06c85d578b8e0f65텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)