Facebook请求FBWebDialog UI看起来很奇怪

时间:2013-08-14 05:22:55

标签: ios objective-c facebook facebook-requests

我正在尝试发送FB请求,但是FBWebDialog呈现了一个我以前从未见过的UI。我不确定我做错了什么。我检查了通常的嫌疑人:

  • facebook app settings
  • 捆绑标识符
  • FacebookDisplayName
  • FacebookAppID
  • 网址类型,网址方案

我用来发送请求的代码:

- (void)sendRequest {
NSError *error;
NSData *jsonData = [NSJSONSerialization
                    dataWithJSONObject:@{
                    @"social_karma": @"5",
                    @"badge_of_awesomeness": @"1",
                    @"request_action": @"1"}
                    options:0
                    error:&error];
if (!jsonData) {
    NSLog(@"JSON error: %@", error);
    return;
}

NSString *giftStr = [[NSString alloc]
                     initWithData:jsonData
                     encoding:NSUTF8StringEncoding];

NSMutableDictionary* params = [@{@"data" : giftStr} mutableCopy];

// Display the requests dialog
[FBWebDialogs
 presentRequestsDialogModallyWithSession:nil
 message:@"Please send me some Energy!"
 title:nil
 parameters:params
 handler:^(FBWebDialogResult result, NSURL *resultURL, NSError *error) {
     if (error) {
         // Error launching the dialog or sending the request.
         NSLog(@"Error sending request.");
     } else {
         if (result == FBWebDialogResultDialogNotCompleted) {
             // User clicked the "x" icon
             NSLog(@"User canceled request.");
         } else {
             // Handle the send request callback
             NSDictionary *urlParams = [self parseURLParams:[resultURL query]];
             if (![urlParams valueForKey:@"request"]) {
                 // User clicked the Cancel button
                 NSLog(@"User canceled request.");
             } else {
                 // User clicked the Send button
                 NSString *requestID = [urlParams valueForKey:@"request"];
                 NSLog(@"Request ID: %@", requestID);
             }
         }
     }
 }];
}

我看到的用户界面:

enter image description here

相同的用户界面,滚动到底部:

enter image description here

我希望看到的UI(使用FB Sample应用程序的相同设备):

enter image description here

1 个答案:

答案 0 :(得分:3)

找到答案.. Facebook正在使用基于正在发送的用户代理的不同UI进行响应。我正在使用的代码修改了用户代理,为服务器添加了一些额外的信息。一旦我重置了用户代理,就会显示常用的Facebook用户界面。