Appcelerator と Facebook API モジュールのビルドを使用して iOS アプリを構築しています。ユーザーに代わってチェックインを公開する方法を見つける必要があります。ユーザーは、場所および/または特定の FB ページでチェックインできる必要があります。これは可能ですか?ステータス メッセージを公開できますが、場所 (場所) を追加できません。
1 に答える
可能です-Titanium.Facebook.requestWithGraphPathメソッドにアクセスできるFacebookのGraphAPIを使用する必要があります。このブログ投稿では、これがiOSでどのように行われるかについて説明していますが、ワークフローは同じです-著者はFacebookのAPIが最近変更されたと言っているので、YMMV-Facebookの開発者リソースに明示的なドキュメントは見つかりませんでした。
- ユーザーに代わってチェックインを公開するには、ユーザーがアプリに「publish_checkins」拡張権限を付与する必要があります
- ユーザーのデバイスの緯度と経度を取得します
- Graph APIからリクエストして、ユーザーの場所の近くにある場所のリストを検索します
- ユーザーが場所を選択できるようにする
- PlaceID、ユーザー座標、オプションのタグ(友達ID)とステータスメッセージを含むパス「me/checkins」を使用してFacebookGraphAPIにPOSTリクエストを送信します
ユーザーに適切な権限をリクエストする方法は次のとおりです。
Titanium.Facebook.permissions = ['publish_checkins'];
Titanium.Facebook.authorize();
場所のリストを検索するために(Titanium.Network.createHTTPClientを使用してGETリクエストを作成する)使用するURLの例を次に示します。
https://graph.facebook.com/search?q=coffee&type=place¢er=37.76,122.427&distance=1000
次に、それらの場所をテーブルビューに一覧表示し、ユーザーが1つをタップすると、POSTを実行して、適切な名前の変数に場所のIDとその座標があると仮定して、チェックインを作成します。
var data = {
place: placeID
coordinates: {
latitude: latitude,
longitude: longitude
}
message: message,
tags: [
// tagged users (optional)
]
};
Titanium.Facebook.requestWithGraphPath('me/checkins', data, 'POST', function(e) {
if (e.success) {
alert("Success! Returned from FB: " + e.result);
} else {
if (e.error) {
alert(e.error);
} else {
alert("Unknown result");
}
}
});
APIが変更された場合、Facebookに送信するプロパティを微調整する必要があるかもしれませんが、一般的なアプローチは正しいです。