UTALI

みんなの役に立つ情報をどんどん公開していきます

Twitter APIで埋め込みコードを取得したい - statuses/oembed

アクセスポイント

GET statuses/oembed

説明

特定のツィートの埋め込みコードを取得します。取得した埋め込みコードはHTML形式になっており、そのままウェブページに埋め込むことができます。また、このAPIは取得件数に制限はありません。

パラメータ

説明 デフォルト値 必須か?
url 検索対象のキーワード プログラミング
lang 特定の言語に限定する ja ×
maxwidth 埋め込みツィートの最大幅を指定する ja ×
hide_media 検索のタイプ 画像や動画などのメディアを含める false ×
hide_thread ツィートに対するリプライなどを表示する false ×
omit_script 埋め込みコードを成形するためのJavaScriptコードを含める true true  ×
align 右寄せ、中央寄せ、左寄せを指定する left center ×

実際に取得してみる

その前にTwitterのURL構造を確認してみましょう。

https://twitter.com/tsuda/status/798426260145917956

https://twitter.com/の後にはスクリーンネーム、そしてstatusの後にはツィートのIDが対応しています。

つまり、このAPIを利用するためには、ツィートの発信者のスクリーン名と個別のツィートのIDが必要になるわけですね。

Pythonを利用してこのアクセスポイントをテストしてみることにしましょう。

今回使うモジュールはこれです。

github.com

from twitter import *

# ここにあなたの取得したアクセストークンを入れてください。

conf = {"accessToken":"466345354-Hywvjhq5jh45gq345jh904jh045j0cbrg","accessTokenSecret":"A

y5ykq45jh0hjqj45hjq495jq490wj0I","consumerKey":"Uugj954jh0j5jh49jgpiCXH","consumerSecret":"y6y5q4h4hqDFejjthjrqtj9qjt90jrt09jrw0tgj90wj9-4hb-2948jh29-5u"}
# ここにツィートのIDを入力

id = "795812394882605056"

t = Twitter(auth=OAuth(conf["accessToken"],conf["accessTokenSecret"],conf["consumerKey"],conf["consumerSecret"]))

result = t.statuses.oebed(url="https://twitter.com/tsuda/status/798426260145917956")

 

このスクリプトを実行します。

python3 oembed.py

成功すると以下のようなJSONが返却されます。

{'type': 'rich', 'url': 'https://twitter.com/tsuda/status/798426260145917956', 'height': None, 'author_url': 'https://twitter.com/tsuda', 'provider_name': 'Twitter', 'cache_age': '3153600000', 'version': '1.0', 'html': '<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">煽った張本人が、煽られて暴走するヤツが問題起こすとはしごを外す光景ってどこの国でも見られる現象なんだな。そりゃヘイトがなくなるわけなかろうに。 / 「ヘイトクライムはやめるんだ」トランプ氏、支持者に訴える <a href="https://t.co/fTLRLtRBUP">https://t.co/fTLRLtRBUP</a></p>&mdash; 津田大介 (@tsuda) <a href="https://twitter.com/tsuda/status/798426260145917956">November 15, 2016</a></blockquote>\n<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>', 'author_name': '津田大介', 'width': 550, 'provider_url': 'https://twitter.com'}