【问题标题】:Publishing Facebook custom story using API calls from IOS app使用来自 IOS 应用程序的 API 调用发布 Facebook 自定义故事
【发布时间】:2014-06-19 13:09:26
【问题描述】:

我需要从我的应用程序将 Open Graph 故事发布到 Facebook 墙上。我在 Facebook 开发人员上关注了current tutorial。

我在 Facebook 仪表板上创建了对象、动作和故事。然后在我的应用程序中执行以下代码:

创建一个对象:

 NSMutableDictionary<FBOpenGraphObject> *object = [FBGraphObject openGraphObjectForPost]; 
object.provisionedForPost = YES;
object[@"title"] = @"test title";
object[@"type"] = @"myapp:my_object_type";
object[@"description"] = @"test discription";
object[@"url"] = @"http://example.com";
object[@"image"] = @[@{@"url": [result objectForKey:@"uri"], @"user_generated" : @"false" }];

并发布:

[FBRequestConnection startForPostOpenGraphObject:object completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
                if(!error) {
                    NSString *objectId = [result objectForKey:@"id"];
                    NSLog(@"object id %@",objectId);
                } else {
                    NSLog(@"Error posting the Open Graph object to the Object API: %@", error);
                }
            }];

        } else {
            NSLog(@"Error staging an image: %@", error);
        }
    }];

得到对象 id 作为结果。

然后创建一个动作并将其与对象链接:

 id<FBOpenGraphAction> action = (id<FBOpenGraphAction>)[FBGraphObject graphObject];
[action setObject:objectId forKey:@"my_object_type"];

FBOpenGraphActionParams *params = [[FBOpenGraphActionParams alloc] init];
params.action = action;
params.actionType = @"myapp:my_app_action";

并将其发布到 Facebook:

 [FBRequestConnection startForPostWithGraphPath:@"/me/myapp:my_app_action" graphObject:action completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
    if(!error) {
        NSLog(@"OG story posted, story id: %@", [result objectForKey:@"id"]);
        [[[UIAlertView alloc] initWithTitle:@"OG story posted"
                                    message:@"Check your Facebook profile or activity log to see the story."
                                   delegate:self
                          cancelButtonTitle:@"OK!"
                          otherButtonTitles:nil] show];
    } else {
        NSLog(@"Encountered an error posting to Open Graph: %@", error);
    }
}];

结果我收到了OG故事发布成功的消息,但是当我去Facebook时,提要或时间线中没有任何内容,只是添加到用户相册中的图像。

【问题讨论】:

    标签: ios objective-c facebook facebook-stream-story custom-stories


    【解决方案1】:

    嗯,不知道是什么问题,但现在它可以使用以下代码:

    FBRequestConnection *connection = [[FBRequestConnection alloc]init];
    
    NSMutableDictionary <FBOpenGraphObject> *object = [FBGraphObject openGraphObjectForPost];
    object[@"type"] = @"myapp:my_object_type";
    object[@"title"] = @"title";
    object[@"url"] = @"http://example.com";
    object[@"image"] = @"http://image.png";
    object[@"description"] = @"description";
    
    FBRequest *objectRequest = [FBRequest requestForPostOpenGraphObject:object];
    
    [connection addRequest:objectRequest completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
        if (error) {
            NSLog(@"Error: %@",error.description);
        }
    } batchEntryName:@"objectCreate"];
    
    
    NSMutableDictionary <FBOpenGraphAction> *action = [FBGraphObject openGraphActionForPost];
    
    action[@"buy"] = @"{result=objectCreate:$.id}";
    action[@"fb:explicitly_shared"] = @"true";
    
    FBRequest *actionRequest = [FBRequest requestForPostWithGraphPath:@"me/myapp:my_app_action" graphObject:action];
    
    [connection addRequest:actionRequest completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
        if (error) {
            NSLog(@"error: %@",error.description);
        } else {
            NSLog(@"posted with id %@", result[@"id"]);
        }
    }];
    
    [connection start];
    

    【讨论】:

    • 我正在尝试使用 FB SDK 做同样的事情,但我不知道如何设置 Facebook 应用程序配置,你能帮我知道我应该做什么,我应该添加什么到我的 Facebook 应用程序?
    猜你喜欢
    • 1970-01-01
    • 2013-06-16
    • 2014-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-18
    • 2011-01-05
    相关资源
    最近更新 更多