iOS上的Facebook Share Dialog:" Publish"按钮总是灰色

时间:2014-02-04 12:45:01

标签: ios facebook facebook-graph-api

我在Facebook开发者网站上创建了一个自定义的开放图形对象,动作和故事,然后按照教程通过官方FB应用程序发布(无需在应用程序中登录)。这是代码:

NSMutableDictionary<FBGraphObject> *object;
NSString *returnUrl = [NSString stringWithFormat:@"http://tettomante.it/questions?%@",
                       [NSString stringWithURLParams:@{@"answer": _answerLabel.text, @"divination": [self divinationNickname]}]];

object = [FBGraphObject openGraphObjectForPostWithType:@"boobs-teller:question"
                                                 title:_questionTextView.text
                                                 image:@"https://d1rdorpdffwq56.cloudfront.net/icona_tettomante.jpg"
                                                   url:returnUrl
                                           description:_answerLabel.text];

NSMutableDictionary<FBOpenGraphAction> *action = (NSMutableDictionary<FBOpenGraphAction> *) [FBGraphObject openGraphActionForPost];
action[@"question"] = object;

// Check if the Facebook app is installed and we can present the share dialog
FBOpenGraphActionShareDialogParams *params = [[FBOpenGraphActionShareDialogParams alloc] init];
params.action = action;
params.actionType = @"boobs-teller:ask";
params.previewPropertyName = @"question";

// If the Facebook app is installed and we can present the share dialog
if([FBDialogs canPresentShareDialogWithOpenGraphActionParams:params]) {
    // Show the share dialog
    [FBDialogs presentShareDialogWithOpenGraphActionParams:params
                                               clientState:nil
                                                   handler:^(FBAppCall *call, NSDictionary *results, NSError *error) {
                                                       if(error) {
                                                           // There was an error
                                                           NSLog(@"Error publishing story: %@", error.description);
                                             }
                                                       else {
                                                           // Success
                                                           NSLog(@"result %@", results);
                                                       }
                                                   }];
}

问题是,一旦在FB应用程序中,自定义故事预览就会正确显示,大约10秒后消失,而顶部的“发布”按钮被禁用(灰色)并且不启用自身。我不明白发生了什么。我认为这可能是因为应用程序处于沙箱模式(我使用的是管理员用户,因此不应该重要),所以我将其公之于众,但没有任何改变。然后我想我必须让FB审查自定义操作,所以我也解决了,但没有任何改变。现在我不知道下一步该尝试什么。

1 个答案:

答案 0 :(得分:2)

创建新应用时遇到了同样的问题。 Open Graph标签必须完全正确,否则您将无法发布您的故事。

检查以确保在Facebook应用程序仪表板中创建的对象和操作与代码中列出的对象和操作相匹配。

object = [FBGraphObject openGraphObjectForPostWithType:@"boobs-teller:question"

在这一行中,“boobs-teller”应该是您列出的App的命名空间(Facebook Apps&gt; Settings&gt; Basic),而“questions”应该是自定义对象(Open Graph&gt; Object Types)您在App仪表板中创建的。如果您还没有创建这些,请转到此处:https://developers.facebook.com/apps

params.actionType = @"boobs-teller:ask";

在这一行中,“boobs-teller”应该是您的app命名空间,“ask”是您在应用仪表板中创建的自定义Action(Open Graph&gt; Action Types)。

详情请见https://developers.facebook.com/docs/ios/open-graph/

您还可以在GitHub上查看示例iOS应用程序,FBOGSampleSD应用程序在学习Open Graph的同时帮助了我很多。 https://github.com/fbsamples/ios-howtos