UDN
Search public documentation:

TwitterIntegrationJP
English Translation
中国翻译
한국어

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 ホーム > PlatformInterface フレームワーク > Twitter インテグレーション

Twitter インテグレーション


概要


Twitter インテグレーションによって、「Unreal Engine 3」によって作成されたゲームが、プレイヤーの Tweitter アカウントに投稿できるようになります。

注意 : Twitter インテグレーション機能は、現在のところ、iOS プラットフォーム上で稼働するゲームに限られています。

TwitterIntegration


TwitterIntegration クラスは、Twitter に接続し、インタラクトするための機能を含む基本クラスです。 CloudStorageBase クラスは、 PlatformInterfaceBase クラスを継承しており、このクラスに含まれているデリゲート システムを利用します。各プラットフォーム (PC、iOS 等) には、 TwitterIntegration クラスを拡張したサブクラスがあり、それによって各プラットフォームに特有な実装が可能となります。

関数

  • Init - Twitter インテグレーションを初期化するためにエンジンによって呼び出されるイベントです。
  • CanShowTweetUI - ユーザーがインテグレートされた Twitter UI を使用することができるか否かを返します。iOS で Twitter UI を使用するには、デバイスが iOS 5 以上であり、かつ、デバイス上で Twitter が使用できるようにユーザーによって認証されている必要があります。UI が使用できない場合は、 TwitterRequest メソッドを代わりに使用することができます。
  • ShowTweetUI [InitialMessage] [URL] [Picture] - UI を表示するプラットフォームを使用して、ツイートを送信するプロセスを開始します。インタラクトの対象であるユーザーのために UI が表示されている場合に、true を返します。(さらに、FID_TweetUIComplete デリゲートが実行されます)。FALSE の場合は、 TwitterRequest を使用して、Twitter API による手動のツイートを実行することができます。
    • InitialMessage - オプションの引数です。UI で表示するメッセージを指定する文字列です。(その後ユーザーによって編集されることができます)。
    • URL - オプションの引数です。URL を指定する文字列です。ツイートに付属させます。
    • Picture - オプションの引数です。画像名を指定する文字列です。ツイートに加えます。現在のプラットフォーム上にローカルに保存されている画像でなければなりません。プラットフォームのサブクラスが、指定された画像を探します。
  • AuthorizeAccounts - プレイヤーの Twitter 情報にゲームがアクセスできるようにするプロセスを開始します。Twitter アプリケーションを認証するようにプレイヤーに対して要求します。認証プロセスが開始した場合は TRUE が返され、TID_AuthorizeComplete デリゲートが呼び出されます。 GetNumAccounts() は、デリゲートが呼び出された後で、アカウントの有効な数を返します。
  • GetNumAccounts - AuthorizeAccounts() によって認証された Twitter アカウントの数を返します。
  • GetAccountName [AccountIndex] - 指定されたインデックスに関連づけられている Twitter アカウントの表示名を返します。
    • AccountIndex - 表示名を取得する Twitter アカウントのインデックスを指定する Int 型です。
  • TwitterRequest [URL] [ParamKeysAndValues] [RequestMethod] [AccountIndex] - Twitter API を使用して、汎用 Twitter リクエストを送信します。すべての有効な URL およびパラメータを含む完全なリストは、 REST API Resources Twitter API ドキュメンテーションのページに掲載されています。
    • URL - リクエストのための URL です。http または https (現在のプラットフォームが https の送信をサポートしている場合) にすることができます。
    • ParamKeysAndValues - 送信する追加パラメータを指定する文字列の配列です。キーと値を次のように分けます。< "key1", "value1", "key2", "value2" >
    • RequestMethod - リクエストを送信するために使用する ETwitterRequestMethod です。
      • TRM_Get - GET リクエストメソッドを使用してリクエストを送信します。
      • TRM_Post - POST リクエストメソッドを使用してリクエストを送信します。
      • TRM_Delete - DELETE リクエストメソッドを使用してリクエストを送信します。
    • AccountIndex - リクエストを送信するための Twitter アカウントのインデックスを指定する Int です。

デリゲート

ETwitterIntegrationDelegate 列挙型は、コールバックを受け取ることができるデリゲートの型のための ID を定義します。 プラットフォーム インターフェース フレームワーク システムを使用して、デリゲートを各 ID に割り当てることができます。

  • TID_AuthorizeComplete - 認証プロセスのレスポンスを受け取った場合に、当該 ID に割り当てられているデリゲートが実行されます。
    • bSuccessful - TRUE の場合は、プレイヤーの Twitter アカウントへのアクセスが許可されています。
    • Data - データは含まれていません。
  • TID_TweetUIComplete - Tweet UI が完了したときに、この ID にアサインされているデリゲートが実行されます。
    • bSuccessful - TRUE の場合は、Tweet UI の完了に成功しました。
    • Data - データは含まれていません。
  • TID_RequestComplete - Twitter リクエストのレスポンスを受け取った場合に、当該 ID に割り当てられているデリゲートが実行されます。
    • bSuccessful - TRUE の場合は、エラーが発生することなく、リクエストの完了に成功しました。
    • Data - web リクエストのレスポンス文字列を含みます。

実装の詳細


「Unreal Engine 3」の Twitter インテグレーションをセットアップおよび使用する場合、そのワークフローの概略は以下のようになります。

  1. TwitterIntegration オブジェクトへの参照を取得します。そのためには、 PlatformInterfaceBase クラスの static な GetTwitterIntegration() を呼び出します。次に、認証および Twitter リクエスト、Tweet UI のコールバックのためのデリゲートをセットアップするとともに、ユーザー (複数も) のための Twitter アカウントを認証します。これは通常、Twitter の機能を配置した場所に応じて、 PostBeginPlay() またはその他の初期化関数において処理します。
       var TwitterIntegration Twitter;
    
       ...
    
       Twitter = class'PlatformInterfaceBase'.static.GetTwitterIntegration();
       Twitter.AddDelegate(TID_AuthorizeComplete, OnTwitterAuthorizeComplete);
       Twitter.AddDelegate(TID_TweetUIComplete, OnTweetComplete);
       Twitter.AddDelegate(TID_RequestComplete, OnTwitterRequestComplete);
       Twitter.AuthorizeAccounts();
       
    ユーザーがまだ Twitter の使用を認証していない場合は、 AuthorizeAccounts() によって、認証するように促されます。
    twitter_auth.jpg
    OnTwitterAuthorizeCompleteOnTweetCompleteOnTwitterRequestComplete は、単なる例です。これらの名前は、 PlatformInterfaceDelegate デリゲートのシグネチャと一致するどのような関数の名前にでもすることができます。
       delegate PlatformInterfaceDelegate(const out PlatformInterfaceDelegateResult Result);
       
    1. ツイートを送信するプロセスを開始するには、 TwitterIntegration 上で CanShowTweetUI() を呼び出すとともに、 ShowTweetUI() を使用して Tweet UI を表示するか、または、==TwitterRequest()== を使用して (必要な場合) 手動でツイートを送信します。
        local array<string> KeyValues;
    
       if (Twitter.CanShowTweetUI())
       {
           Twitter.ShowTweetUI("Tweeting from UE3", "http://www.epicgames.com", "Icon");
       }
       else
       {
           KeyValues.AddItem("status");
           KeyValues.AddItem("Tweeting from UE3");
           Twitter.TwitterRequest("http://api.twitter.com/1/statuses/update.json", KeyValues, TRM_POST, 0);
       }
       
    Tweet UI がユーザーに表示されて (可能な場合)、ユーザーがメッセージを編集できるようにします。
    twitter_ui.jpg

基本的な実装は、 UDKBase\Classes ディレクトリの CloudPC.uc スクリプトに置かれています。また、 CloudGame ゲームタイプを使用してテストすることが可能です。