我已经成功地将照片发布在用户墙上,但未能将其张贴在粉丝页面的墙壁上. (用户不一定是管理员或页面所有者,只是普通用户.由于粉丝专页有任何人可以发布的选项,用户首先不需要这样的页面强制,对吗?)
在google搜索一段时间后,我发现了this answer.根据它,我需要一个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 }
谁能帮我这个?我在这里缺少什么?提前致谢.
UPDATE
根据this answer,普通用户不能将照片从iOS应用程序发布到粉丝专页墙壁,但可以在其上共享照片.现在,我的问题是,如何完成在用户墙上发布照片,并在同一时间在粉丝页面墙上分享?可能吗?如何在粉丝页面墙上分享照片?
更新2
This answer and the question说,普通用户可以通过新闻源发布到粉丝页面墙壁,所以我修改了我的代码:
if ([appDelegate.facebook isSessionValid]) { NSMutableDictionary *page_params = [NSMutableDictionary dictionaryWithObjectsAndKeys: @"fan_page_id",@"to",@"Test",@"name",@"caption",resultimage,nil]; [appDelegate.facebook dialog:@"Feed" andParams:page_params andDelegate:self]; }
但是,我不断得到这个可笑的错误消息,应用程序崩溃:
-[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'
我现在应该怎么做?
在这个时候等了这么久,问题出在我脑海里,这是甚么可能吗?如果是这样,我该如何完成这个任务?如果没有,那么什么是替代品?请帮忙.
更新3
刚刚发现,在iOS sdk和javascript sdk中有一个known bug在风扇页面墙上发布对话框.图像上传也是这样吗?如果有人有解决方案来避免这个bug,请帮忙.
解决方法
一个解决方法是发布到页面的/ Feed连接,并将图像附加到Feed故事.该图像不会像正确的照片上传一样大,但应该可以正常工作.
该错误意味着使用User access_token发布到/ PAGE_ID /照片页面的连接会错误地将照片上传到用户的/照片连接.
使用页面的access_token时,发布到页面/照片连接将按预期工作;照片将显示在页面的照片页面,页面的时间轴上,并归因于页面本身(即“从”页面)
如果您的应用专门用于向页面添加内容,并且具有服务器端组件,则将用户的照片从页面上获取的其他解决方法是让用户通过自己的界面向您提供照片(即上传它从用户的设备到您的服务器),并使用其中一个页面管理员的access_tokens来获取一个Page access_token
并进行上传.