通过常规非管理员用户通过iOS应用程序将照片发布到Facebook粉丝页面

Sha*_*bib 14 facebook-graph-api ios facebook-ios-sdk

我试图将照片发布到我的应用程序Facebook粉丝页面和用户墙上.我已经成功将照片发布在用户墙上,但未能将其发布在粉丝页面墙上.(用户不一定是管理员或页面所有者,只是常规用户.由于粉丝页面可以选择任何人发帖,因此用户甚至不必首先喜欢该页面.对吧?)

谷歌搜索了一段时间后,我找到了这个答案.根据它,我需要粉丝页面的access_token和album_id这样做.但我找不到任何关于如何获得它们的线索.到目前为止,我尝试过这段代码:

if ([appDelegate.facebook isSessionValid]) 
    {
        NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                       resultImage, @"picture",
                                       nil];

        [appDelegate.facebook requestWithGraphPath:@"me/photos"
                                         andParams:params
                                     andHttpMethod:@"POST"
                                       andDelegate:self]; // to post on users wall, works fine

         NSString *path = [NSString stringWithFormat:@"my/accounts /fan_page_id?fields=access_toke/photos"];
        [appDelegate.facebook setAccessToken: FACEBOOK_ACCESS_TOKEN];

        [appDelegate.facebook requestWithGraphPath:path andParams:params andHttpMethod:@"POST" andDelegate:self]; // to post on fan page wall,  this doesn't work
    }
Run Code Online (Sandbox Code Playgroud)

谁能帮我这个?我在这里错过了什么?提前致谢.

UPDATE

根据这个答案,普通用户无法从iOS应用程序将照片发布到粉丝页面墙,但可以在其上共享照片.现在,我的问题是,如何在用户墙上发布照片并同时在粉丝页面墙上分享?可能吗?如何在粉丝页面墙上分享照片?

更新2

这个答案和问题说普通用户可以通过新闻提要发布到粉丝页面墙,所以我修改了我的代码:

if ([appDelegate.facebook isSessionValid]) {
        NSMutableDictionary *page_params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                       @"fan_page_id", @"to",
                                       @"Test", @"name",
                                       @"Test", @"caption",
                                       resultImage, @"picture",
                                       nil];
        [appDelegate.facebook   dialog:@"feed"
                                andParams:page_params
                                andDelegate:self];

}
Run Code Online (Sandbox Code Playgroud)

但是,我一直收到这个荒谬的错误消息,应用程序崩溃:

-[UIImage length]: unrecognized selector sent to instance 0x24d110
2012-06-06 19:59:03.114 app_name[2739:707] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIImage length]: unrecognized selector sent to instance 0x24d110'
Run Code Online (Sandbox Code Playgroud)

我现在应该怎么做?

等了这么久之后,我脑子里想到的问题是,这甚至可能吗?如果是这样,我该如何完成这项任务?如果没有,那么有什么选择呢?请帮忙.

更新3

刚刚发现iOS sdk和javascript sdk中都存在一个已知错误,用于在粉丝页面墙中发布对话框.这对图像上传也是如此吗?如果有人有解决方案来避免这个错误,请帮忙.

Igy*_*Igy 7

由于API中存在错误,目前(2012年6月)可能不存在此问题:https://developers.facebook.com/bugs/206254392780441具有详细信息.

一种解决方法是发布到/feed页面的连接并将图像附加到Feed故事.该图像不会显示为正确的照片上传,但应该可以正常工作.

该错误意味着/PAGE_ID/photos使用用户发布到页面的连接access_token将错误地将照片上传到用户的/photos连接.

/photos使用Page时,发布到页面的连接将按预期工作access_token; 照片将显示在页面的照片页面上,页面的时间轴上,并归因于页面本身(即"来自"页面)

如果您的应用专门用于向页面添加内容,并且具有服务器端组件,则将用户的照片传送到页面的另一种解决方法是让用户通过您自己的界面向您提供照片(即上传它)从用户的设备到服务器),并使用其中一个页面管理员access_tokens来获取页面access_token并以此方式上传.