JackMasaki’s blog

掲載した記事ネタや作ったアプリ、参加したイベントレポートなどを掲載します

PlayFabで最新のNewsを取得したり取得件数を変更する

今回はUnityでのNewsの取得を書きます。

PlayFabの導入部分はこちら

jackmasaki.hatenablog.com


PlayFabの"Content"から"NEW TITLE NEWS"を押し新規でNewsを作成します。 f:id:JackMasaki:20180909183729p:plain

Newsの入力項目は次のようになっています。

Title content
Title Newsのタイトル
Timestamp Newsのタイムスタンプ
Status Newsの状態
Body Newsの本文

今回は公開するのでStatusを"Published"にし、TitleとBodyを入力後"Save Title News"を押します。

f:id:JackMasaki:20180909184103p:plain

基本的にPlayFabはHTTPをPOSTしリクエストすることでレスポンスを貰えますが、UnityにはClassicでメソッドが用意されています。

GetTitleNews()でNewsを取得できます。 リクエストすると下記のプロパティを持ったList型のNewsが返ってきます。

Newsのプロパティ
Body Newsの本文
NewqId NewsのユニークID
Timestamp Newsのタイムスタンプ
Title Newsのタイトル

例えば最新のNewsは次の方法で呼べます。

using PlayFab;

private void GetNews(){
    PlayFabClientAPI.GetTitleNews(new GetTitleNewsRequest(), result =>
    {
    Debug.Log("Got latest News!");
    var newsTitle =  result.News[0].Title;
    var newsBody = result.News[0].Body;
    }, error => Debug.LogError(error.GenerateErrorReport()));
}

GetTitleNews()は標準では10件のニュースを取得するようになっています。 もしそれ以上のニュースを取得したい場合はGetTitleNewsRequest()内でCountに入れてリクエストすることで件数を変更できます。

例えばNewsを25件取得したい場合は

using PlayFab;

private void GetNews(){
    PlayFabClientAPI.GetTitleNews(new GetTitleNewsRequest()
{
    Count = 25
}, result =>
    {
    Debug.Log("Got 25 News!");
    var newsTitle =  result.News[result.News.Count - 1].Title;
    var newsBody =  result.News[result.News.Count - 1].Body;
    }, error => Debug.LogError(error.GenerateErrorReport()));
}

このようなリクエストの書き方で取得することができます。