Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/114.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
普通非管理员用户通过iOS应用程序将照片发布到facebook粉丝页面_Ios_Facebook Graph Api_Facebook Ios Sdk - Fatal编程技术网

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

普通非管理员用户通过iOS应用程序将照片发布到facebook粉丝页面,ios,facebook-graph-api,facebook-ios-sdk,Ios,Facebook Graph Api,Facebook Ios Sdk,我正在尝试将一张照片发布到我的应用程序facebook粉丝页面和用户墙上。 我已经成功地将照片张贴在用户墙上,但未能将其张贴在粉丝页面墙上。(用户不一定是管理员或页面所有者,只是普通用户。由于粉丝页面具有任何人都可以发布的选项,因此用户甚至不必首先喜欢该页面。对吗?) 在谷歌搜索了一段时间后,我发现。根据它,我需要一个粉丝页面的访问令牌和一个相册id。但是我找不到任何关于如何得到它们的线索。到目前为止,我已经尝试了以下代码: if ([appDelegate.facebook isSession

我正在尝试将一张照片发布到我的应用程序facebook粉丝页面和用户墙上。 我已经成功地将照片张贴在用户墙上,但未能将其张贴在粉丝页面墙上。(用户不一定是管理员或页面所有者,只是普通用户。由于粉丝页面具有任何人都可以发布的选项,因此用户甚至不必首先喜欢该页面。对吗?

在谷歌搜索了一段时间后,我发现。根据它,我需要一个粉丝页面的访问令牌和一个相册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
    }
有人能帮我吗?我错过了什么?提前谢谢

更新

据介绍,普通用户不能通过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];

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

-[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中都有一个用于在扇形页面墙中发布对话框的对话框。图像上传也是这样吗?如果任何人都有避免此错误的解决方案,请提供帮助。

您可以要求用户授予-发布\u流
(由于对话框组件中存在错误,否则不需要)

然后您可以在页面墙上发布(假设页面设置中允许页面)

你可以尝试使用。您可以通过在“扩展权限”选项卡中授予上述权限来更改页面id和测试

注意
您应该记住的另一件事是,不能在picture参数中发送图像数据。您应该提供指向图像的链接。

由于API中存在错误,目前(2012年6月)不可能这样做:包含详细信息

一种解决方法是将文章发布到页面的
/feed
连接,并将图像附加到提要故事。该图像将不会显示为一个适当的照片上传大,但应该工作正常

该错误意味着,使用用户
访问令牌
将照片上传到页面的
/PAGE\u ID/photos
连接将错误地上传到用户的
/photos
连接

当使用页面的
访问令牌时,发布到页面的
/photos
连接将按预期工作;照片将出现在页面的照片页面、页面的时间轴上,并归属于页面本身(即“来自”页面)


如果您的应用程序专门用于向页面添加内容,并且具有服务器端组件,那么将用户的照片添加到页面上的另一个解决方法是让用户通过自己的界面向您提供照片(即从用户的设备上载到服务器),并使用其中一个页面管理员的
访问\u令牌
获取一个链接,并以这种方式进行上载。

我只想尝试解决异常错误。可以在你的粉丝页面上发布新闻。无法以fan页面本身的身份发布,因为这需要身份验证(因此访问令牌要求..您必须以该用户的身份登录才能以他们的身份发布)@Igy已经解决了上述问题

但是,您没有使用图像选择器获取图像的代码。您遇到的例外情况是,您试图检查UIImage对象而不是NSData对象的长度(这是Facebook所要求的)。要将图像从选择器转换为数据,请使用下面的代码段(用UIImage替换img变量)


我认为你在张贴照片时使用了错误的论点

您应该使用
@“url”
而不是
@“图片”

我不确定这个,但它可能会起作用

我在javaScript中遇到了同样的问题,问题已经解决了


请查看以参考我的问题

谢谢您的回复,我已授予用户发布流的权限,并且该页面允许在其墙上发布匿名用户(甚至不喜欢该页面)。请注意,我试图发布的图像是从相机拍摄的,因此我不知道如何提供图像链接作为图片参数。如果你已经成功地完成了我要做的任务,你能给我提供一个指导或什么吗?我会非常感激。如果你有一个服务器,你可以上传图片到那个服务器,获取URL,然后用那个URL在页面墙上发布。我没有,这听起来不是一个好的解决方案。这是一个手机应用程序,用户拍照,应用程序对其进行一些修改,然后在facebook(用户墙和粉丝页面墙)中共享。如果我必须为此管理一个服务器,这就没有意义了。无论如何,感谢您的回复。*/feed将不接受图像数据。它必须是一个URL。您可以使用AmazonS3服务,这是一种非常低成本的服务。您可以轻松地实现它。若那个不适合你们,那个么你们就并没有办法把图片贴在墙上。谢谢你们的回复。正如我之前所说,图像是从用户的手机摄像头中拍摄的,然后用户将其分享到他/她的墙上,同时也分享到粉丝页面的墙上。对于这种情况,你能给我一个更好的方法吗?可能是一些例子/教程,以防你做了这种调整?你可以从应用程序发布到自己的墙上,同时
NSData *imgData = UIImageJPEGRepresentation(img, 0);

// Now call to length by facebook SDK will work and the exception will not fail
NSLog(@"Size of Image(bytes):%d",[imgData length]);