デバイスのシェア機能

このエンドポイントは、2020年11月2日に廃止されました。

デバイスのシェア機能を使用すると、デバイスのコンテンツを簡単にFacebookでシェアできます。例えば、スマートTV、デジタルフォトフレーム、IoT (Internet of Things)デバイスでも利用できます。

デバイスのシェア機能では、デバイスに英数字のコードが表示され、デスクトップPCやスマートフォンのウェブページでそのコードを入力するように求められます。アプリやサービスの利用者は、そのコードに関連付けられたシェアダイアログを使用してコンテンツをFacebookでシェアできます。

Apple TV用のアプリを開発している場合はSDK for tvOSを、各種Androidデバイス用のアプリを開発している場合はSDK for Androidを使用してください。

このガイドでは次の項目について説明します。

ユーザーエクスペリエンス

1. コールトゥアクション

最初に、サービスの利用者に対して、どのタイミングでFacebookにコンテンツをシェアするようリクエストするのかを検討します。最適な操作性を確保するために、できるだけ公式のFacebookシェアボタンに似たデザインのボタンを設計してください。一般的に、ボタンはシェアするコンテンツの横に配置します。

ビジュアルデザインの観点では、次の設定が必要になります

  1. ボタンに「シェア」や「Facebookでシェア」のラベルを付ける。
  2. 白色と、Facebookブランド公式の青色#3B5998を使う。
  3. デバイスがグラフィック表示に対応している場合は、公式の「f」のロゴを組み込むこともできます。Facebookブランドガイドラインに従い、ロゴには必ず白色かFacebookブルー(#3B5998)のいずれかを使います。

2. コードを表示する

利用者がコールトゥアクションをクリックすると、デバイスからFacebookのAPIに対して呼び出しが実行され、APIからコードが返されます。

インターフェイスに「次に、デスクトップまたはスマートフォンでfacebook.com/device (http://facebook.com/device)にアクセスし、このコードを入力してください」というメッセージを表示して、利用者にウェブサイトにアクセスしてコードを入力する必要があることを伝えます。FacebookのDevice Share APIから返されたコード全体を表示します。コードの長さは6文字以上、12文字以下です。

CloseボタンまたはDoneボタンを追加して、利用者がデバイスシェアフローを完了できるようします。

3. シェア機能

デスクトップまたはモバイルブラウザーでfacebook.com/deviceにアクセスすると、このフローが表示されます。最初に、コードを入力するためのテキストフィールドが表示されます。

該当するコードを入力してContinueをクリックすると、シェアダイアログが表示されます。

シェアが正しく処理されると、次のような確認メッセージが表示されます。

デバイスのシェア機能の実装

Facebookのデバイス用シェア機能は、インターネット経由でHTTP呼び出しを行うデバイス向けの機能です。デバイスでは次のようなAPI呼び出しや応答を実行できます。

1. デバイス用Facebookログインを有効にする

アプリのダッシュボードを読み込み、[設定] > [詳細設定] > [OAuth設定] > [デバイスログイン]を[はい]に変更します。

2. コードを生成する

Shareコールトゥアクションがクリックされたら、デバイスから次のようなHTTP POSTを実行します。

POST https://graph.facebook.com/device/share
       access_token=<APPID|CLIENT_TOKEN>
       href=<LINK_TO_SHARE>

CLIENT_TOKENは[アプリ設定] > [詳細]で確認できます。アプリIDとパイプ|で区切って組み合わせてaccess_tokenの形式にします。

さらに、Open Graphストーリーをシェアする場合、APIではhrefの代わりにaction_typeおよびaction_propertiesもサポートされています(シェアダイアログのOpen Graphアクションと同様)。

さらに、APIではquoteパラメーターとhashtagパラメーターもサポートされています(シェアダイアログのパラメーターと同様)。

応答の形式は次のとおりです。

{
  "user_code": "A1NWZ9",
  "verification_uri": "https://www.facebook.com/device",
  "expires_in": 420,
}

応答の内容:

  1. デバイスに「A1NWZ9」の文字列を表示します。
  2. 利用者に「facebook.com/device」にアクセスしてこのコードを入力するよう指示します。
  3. コードの有効期限は420秒です。有効期限が過ぎたらコードの表示を閉じるようにしてください。

3. コードを表示する

デバイスにuser_codeを表示し、PCやスマートフォンからverification_uri (facebook.com/deviceなど)にアクセスするように利用者に指示します。ユーザーエクスペリエンスをご覧ください。

トラブルシューティング

HTTP経由でデバイスフローリクエストをすることはできますか。
トークンによるグラフAPIにはTLS/HTTPSが必要です。

GETメソッドを使用してデバイスフローリクエストを行うことはできますか。
デバイスフローリクエストはすべてPOSTリクエストで行う必要があります。

利用者がシェアをいつ完了したのかを確認できますか。
いいえ、できません。

プログラムによる代理投稿は可能ですか。
いいえ。そうするには、利用者に対して、ログインして、あなたが代理で公開するためのアクセス許可を付与するようリクエストする必要があります。詳しくは、グラフAPIによる公開をご覧ください。