【问题标题】:How to Send App request to facebook friends through facebook iOS sdk?如何通过 facebook iOS sdk 向 facebook 好友发送 App 请求?
【发布时间】:2011-12-30 04:47:32
【问题描述】:

我正在为我的 iOS facebook 应用程序使用 facebook sdk。我想向多个用户发送应用请求。为此,我正在使用以下方法。

NSArray* actionLinks = [NSArray arrayWithObjects:[NSDictionary dictionaryWithObjectsAndKeys:
                                                  @"Get Started",@"name",@"http://www.facebook.com/apps/application.php?id=135775646522275/",@"link", nil], nil];
NSString *actionLinksStr = [jsonWriter stringWithObject:actionLinks];

NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                               @"Check out this awesome app I am using.",@"message",
                               @"Check this out", @"notification_text",
                               @"http://www.facebook.com/apps/application.php?id=135775646522275/",@"link",
                               appImage,@"picture", 
                               actionLinksStr, @"actions",

                               nil];
[facebook dialog:@"apprequests"
       andParams:params
     andDelegate:self];

问题是,我调用这个方法后,出现app request web view,app request提交成功。但是好友墙只有app_request计数增加,他既没有收到任何应用请求通知,也看不到应用请求。 可能是什么问题,有没有其他替代方法可以从 iOS facebook 应用程序发送应用程序请求?

【问题讨论】:

    标签: facebook-graph-api graph dialog apprequests facebook-ios-sdk


    【解决方案1】:

    这里是修复:

    1. 转到http://developers.facebook.com
    2. 编辑您的应用设置。
    3. 检查“Facebook 上的应用”和“原生 iOS 应用”。
    4. 输入您的应用的网站 URL(如果有)作为 Canvas URL(安全 Canvas URL 可以相同)。
    5. 输入 iOS Bundle IDiPhone/iPad App Store ID(您可以在 iTunes connect 的应用页面上找到此信息)。

    Canvas URL 用于在您的朋友查看来自网站的请求时重定向他 iOS Bundle IDiPhone/iPad App Store ID 用于在您的朋友查看来自 Native iOS App 的请求时将他重定向到 App Store。

    【讨论】:

    • 我认为更好的选择不是设置“Facebook 上的应用”,而是选择“使用 Facebook 登录的网站”。这样您就可以提供任何网址,例如您的应用网站。当我使用 Canvas URL 提供我的应用程序网站时,facebook 出现错误。可能与我的网站有关,但我认为这种方式不那么麻烦和清洁。通知也以这种方式工作。
    • 按预期完美运行...非常感谢 :)
    • @SebKade 我似乎无法让它仅适用于具有 Facebook 登录的网站。该请求将显示在应用中心,但不会显示在用户实际通知中。这可能是由于 Facebook 改变了它的工作方式。如果我错了,请纠正我。