Skip to main content

はじめに

X API v2 のリリースに伴い、異なるオブジェクトやフィールドをリクエストするための新しいデータレスポンス形式とリクエスト方法を採用しました。これを便宜上「X API v2 フォーマット」と呼びます。  「一般的な違い」のセクションでは、standard ユーザーおよび enterprise ユーザーに関連するいくつかの変更点について学ぶことができます。あわせて、standard v1.1 の Native フォーマット、enterprise 向けの Native Enriched フォーマット、および enterprise 向けの Activity Streams フォーマット それぞれに特化したガイドも用意しており、フィールドの対応関係を示すとともに、新しい v2 フィールドをリクエストする際に使用する必要があるフィールドと expansions を説明しています。  X API v1.1 データフォーマットX API v2 フォーマット の違いをすばやく確認するのに役立つ、ビジュアルデータフォーマット移行ツール もあわせてご利用いただけます。

全般的な違い

オブジェクトとフィールドのリクエスト

pre-v2 エンドポイントと v2 の最大の違いの 1 つは、新しいバージョンではデフォルトで返されるフィールドがごく一部に限られているのに対し、Standard、Premium、Enterprise エンドポイントではほとんどのフィールドがデフォルトで返される点です。新しいバージョンでは、fieldsexpansions というパラメータを使用して、デフォルト以外の追加データを明示的にリクエストします。これにより、不要なフィールドを取り込まずに、必要なデータだけをリクエストできるようになります。  リクエストしたフィールドがプライマリのデータオブジェクトに関連するものであれば、それらはデフォルト値とともに、そのプライマリデータオブジェクト内に返されます。一方で、expansions パラメータを使用して展開対象のオブジェクトをリクエストした場合、セカンダリオブジェクトは新しい includes オブジェクト内に返されます。includes オブジェクト内の展開されたオブジェクトは、両方に含まれる id フィールドを使用することでプライマリオブジェクトと対応付けることができます。 たとえば、v2 の Post lookup エンドポイントを使用し、リクエストに expansions=author_id パラメータを含めた場合、プライマリのポストオブジェクト内に author_id フィールドが返されると同時に、includes オブジェクト内にポストごとに 1 つの user オブジェクトが返されます。それぞれの user オブジェクトにはデフォルトの id フィールドが含まれており、このフィールドを使って user オブジェクトをポストオブジェクトと対応付けることができます。以下はその例です。

更新された JSON 設計

特定のフィールドのリクエスト方法の変更に加えて、X API v2 では API から返されるオブジェクト、たとえば Postuser オブジェクトに対しても、新しい JSON 設計を導入しています。
  • JSON のルートレベルでは、従来の標準エンドポイントは Post オブジェクトを statuses 配列で返しますが、X API v2 は data 配列で返します。 
  • Retweeted や Quoted の「statuses」を参照する代わりに、X API v2 の JSON では Retweeted および Quoted ツイートを参照します。contributorsuser.translator_type など、多くのレガシーおよび非推奨フィールドは削除されます。 
  • Post オブジェクトの favorites と user オブジェクトの favourites の両方を使用する代わりに、X API v2 では like という用語を使用します。 
  • X では、値を持たない JSON 値 (たとえば null) はペイロードに含めないという規約を採用しています。Post および user の属性は、null ではない値を持つ場合にのみ含められます。   

新しい v2 フィールド

また、Post オブジェクト に対して、次のような新しいフィールド群も導入しました。
  • conversation_id フィールド
  • context と entities を含む、2 つの新しい annotations フィールド
  • いくつかの新しい metrics フィールド
  • 新しい reply_setting フィールド。特定のポストに誰が返信できるかを示すフィールドです

standard v1.1 のデータフォーマットから v2 への移行

まだお読みでない場合は、まず データフォーマットの移行 のイントロダクションに目を通すことをおすすめします。X API v1.1 のデータフォーマットX API v2 のフォーマット の違いをすばやく確認するには、ビジュアルデータフォーマット移行ツール も参考になるかもしれません。 standard v1.1 データフォーマットはネイティブフォーマットとも呼ばれ、standard v1.1 エンドポイントで提供される主要なフォーマットです。 Premium 製品をご利用の場合は、ネイティブ拡張データフォーマットガイド を参照してください。Enterprise のお客様は、Gnip コンソールでの設定方法に応じて、ネイティブ拡張データまたは activity streams を使用している可能性があります。 

標準 v1.1 と v2 のペイロード構造の比較

次の表では、v1.1 のフォーマットと比較して、v2 から受け取る上位レベルのオブジェクトとフォーマットを示します。 フィールドのマッピング 次のセクションでは、どの v1.1 のフィールドがどの v2 のフィールドに対応するかに加えて、その新しいフィールドを受け取るために必要な v2 パラメータについて説明します。  

ツイートオブジェクト


User オブジェクト

Entities および expanded entities オブジェクト


Place オブジェクト

次のステップ

Native Enriched データ形式から v2 への移行

Native Enriched データ形式は、当社のエンタープライズ製品で使用されています。 Native Enriched データ形式は、編集済みツイートのメタデータを提供できるように更新されています。編集ツイートのメタデータの詳細については、Edit Tweets の基本ページを参照してください。 標準の v1.1 エンドポイントを使用している場合は、standard v1.1 から v2 へのガイドを参照してください。Activity Streams を使用するエンタープライズ製品をご利用の場合は、Activity Streams から v2 への移行ガイドも用意しています。 X API v2 では、ツイートオブジェクトとユーザーオブジェクトに対して新しい JSON 設計を導入しています。
  • JSON のルートレベルでは、Native Enriched 形式は results 配列でツイートオブジェクトを返しますが、X API v2 は data 配列を返します。
  • ツイートオブジェクト内の favorites とユーザーオブジェクト内の favourites の両方を使用する代わりに、X API v2 では like という用語を使用します。
  • X では、値を持たない JSON 値 (たとえば null) はペイロードに書き込まないという規約を採用しています。ツイートおよびユーザーの属性は、null 以外の値を持つ場合にのみ含まれます。
  • v2 のすべての id フィールドは文字列形式になります  
新しい JSON 形式に加え、ツイートオブジェクトに対して新しい一連のフィールドも導入しており、以下が含まれます。
  • conversation_id
  • reply_settings
  • メディアの alt_text
  • context と entities を含む 2 つの新しいアノテーションフィールド
  • 複数の新しいメトリクスフィールド
  • 複数の新しい投票フィールド  
多くのレガシーおよび非推奨フィールドは削除されます。
  • contributors
  • 特定の entities.media および extended_entities.media フィールド
  • filter_level
  • timestamp_ms
  • truncated

Native Enriched と v2 のペイロード構造の比較

次の表は、Native Enriched フォーマットと比較した場合に、v2 から受け取ることが想定される主なオブジェクトとその形式を示しています。 フィールドのマッピング 次のセクションでは、どの Native Enriched のフィールドが v2 のフィールドに対応するか、また新しいフィールドを受け取るためにどの v2 パラメータが必要となるかを説明します。  

Tweet オブジェクト

User オブジェクト

Entities オブジェクトと expanded_entities オブジェクト

Place オブジェクト

投票オブジェクト

Activity Streams データフォーマットから v2 への移行

Activity Streams データフォーマットは、弊社の エンタープライズ製品で利用可能です。 Activity Streams データフォーマットは、編集されたツイートのメタデータを提供できるように更新されました。ツイート編集のメタデータの詳細については、Edit Tweets の基本ページを参照してください。 標準の v1.1 エンドポイントを使用している場合は、standard v1.1 から v2 へのガイドを参照してください。Premium エンドポイントやエンタープライズ向けの Native Enriched フォーマットを使用している場合は、Native Enriched から v2 へのガイドを参照してください。 X API v2 では、ポストおよびユーザーオブジェクトに対して新しい JSON 設計が導入されています。
  • JSON のルートレベルでは、Activity Streams フォーマットは results 配列内にツイートオブジェクトを返しますが、X API v2 は data 配列を返します。 
  • リツイートおよび引用の「activities」を参照する代わりに、X API v2 の JSON ではリツイートおよび引用ツイートを参照します。 
  • ツイートオブジェクト内の favorites とユーザーオブジェクト内の favourites を両方使用する代わりに、X API v2 では like という用語を使用します。 
  • Twitter では、値を持たない JSON 値 (たとえば null) はペイロードに書き出さないという規約を採用しています。ツイートおよびユーザー属性は、null 以外の値を持っている場合にのみ含まれます。 
  • v2 のすべての id フィールドは文字列形式になります。  
新しい JSON フォーマットへの変更に加えて、ツイートオブジェクトには次のような新しいフィールドセットも導入されています。
  • conversation_id
  • reply_settings
  • メディア上の alt_text
  • context と entities を含む 2 つの新しい annotations フィールド
  • 複数の新しい metrics フィールド
  • 複数の新しい polls フィールド  
多くのレガシーおよび非推奨フィールドは削除または置き換えられます。
  • display_text_range
  • generator
  • gnip
  • link
  • objectType
  • provider
  • twitter_entities.symbols は data.entities.cashtags に置き換え
  • 一部の twitter_extended_entities.media および twitter_entities.media フィールド
  • twitter_filter_level
  • twitterTimeZone
  • verb

ツイートオブジェクト

User オブジェクト

Poll オブジェクト

Place オブジェクト

メディアオブジェクト

マッチングルールオブジェクト

ビジュアルデータ形式移行ツール

ビジュアルデータ形式移行ツールは、指定したツイートまたはユーザーオブジェクトについて、X API v1.1 のデータ形式のフィールドが X API v2 形式のどのフィールドに対応するかを表示する Web アプリケーションです。ツールでこのマッピングを確認するには、ツイート ID またはユーザー ID のいずれかを入力します。 このアプリを利用するには、Twitter アカウントでログインする必要があります。