【发布时间】:2014-02-23 22:54:22
【问题描述】:
我想跟踪从“player_1”发送给其他玩家的邀请以计算它们,并因此给“player_1”一些奖励。就像在 PVZ2 中一样。
好的,Facebook 有 Unity3d 的 SDK。这是调用允许邀请玩家的应用请求对话框的 API:
public static void AppRequest(
string message,
string[] to = null,
string filters = "",
string[] excludeIds = null,
int? maxRecipients = null,
string data = "",
string title = "",
FacebookDelegate callback = null)
Facebook 文档中提到了一些关于 redirect_url 的内容,可用于跟踪接受缩进的用户: https://developers.facebook.com/docs/reference/dialogs/requests/
但是 Unity 插件没有这个参数。
还有 doc 说如下:
请求仅适用于 Facebook.com 或 iOS 上的游戏,并且 安卓应用。接受来自游戏的请求将指示该人 到发送请求的应用程序的画布页面 URL。对于本地人 移动应用程序,接受请求会将人定向到应用程序 如果安装在他们的设备上或到适当的位置(Apple App Store 或 Google Play)下载应用程序。
游戏只能在移动设备上运行。因此我们不需要制作 Facebook Canvas 应用程序。我是否应该在我们的网站上实现这个 Canvas URL 脚本?
注入代码(服务器端脚本)以跟踪 Facebook 应用请求的正确位置在哪里?
更新: 感谢 Bhavesh Vadalia 的回答:https://stackoverflow.com/a/21597185/425707 我决定不在 Canvas App 中处理好友请求。 这是 Facebook SDK 5.0.3 的解决方案:
// Quesry string: "/fql?q=SELECT uid, name, is_app_user, pic_square FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) AND is_app_user = 1";
string q = "/fql?q=SELECT+uid,+name,+is_app_user,+pic_square+FROM+user+WHERE+uid+IN+(SELECT+uid2+FROM+friend+WHERE+uid1+=+me())+AND+is_app_user+=+1";
FB.API(q, Facebook.HttpMethod.GET, friendsResult =>
{
if (friendsResult.Error != null)
{
FbDebug.Error(friendsResult.Error);
}
else
{
FbDebug.Log(friendsResult.Text);
}
});
【问题讨论】:
标签: android ios facebook facebook-graph-api unity3d