2012-02-04 74 views
0

我对Facebook API相当陌生,目前我正在使用Facebook PHP SDK。所以,我有兴趣在我的墙上(/ me/links /)上自动从facebook(如http://www.facebook.com/photo.php?fbid=10150286544861729&set=a.10150286544851729.375565.20531316728&type=1)分享某张照片。 因此,在POST请求中,我发送参数“source”和“link”,同时指向相同的URL(图像URL)。但是我得到了OAuthException“(#1500)你提供的URL是无效的”。无法使用Facebook API共享图片

我已经允许“publish_stream”和“share_item”权限,但最尴尬的是,它似乎没有任何问题与我的代码,但与应用程序设置不知何故,因为我得到相同的错误如果我使用Graph API Explorer,则使用相同的权限生成访问令牌。

我在这里错过了什么?

没关系,现在图形API浏览器工作正常,我刚刚生成另一个令牌,它工作正常。所以,这个问题可能与代码有关,所以这里是:

$share = $facebook->api('/me/links', 'POST', array(
          'source' => urlencode($temp_test), 
          'link' => urlencode($temp_test), 
          )); 

它有什么问题吗?

回答

1

您无法共享在Facebook上托管的图片。你可以做什么它首先在你的服务器上使用PHP copy()函数复制该图像,然后通过从你的服务器传递图像的URL。

i.e copy("http://www.facebook.com/photo.php?fbid=10150286544861729&set=a.10150286544851729.375565.20531316728&type=1", "/folder location on your server/image.jpg"); 

$share = $facebook->api('/me/links', 'POST', array(
          'source' => "http://yourserver.com".$folder_path.$image, 
          'link' => urlencode($temp_test), 
          )); 
+0

如果我删除“源”并只使用“链接”,那么怎么办?我仍然需要将图像复制到我的服务器? – 2012-02-05 00:36:58

+0

我知道它变得有点持久,但为什么我可以在Graph API Explorer上共享一个图像(通过paramater“链接”到facebook图片),但我无法在我的应用程序中执行它? – 2012-02-05 00:38:33

+0

对此没有一个很好的想法,但认为如果你有一个图像的链接,但用户设置该图像上的一些隐私如何fb允许您的应用程序发布该图像? – 2012-02-07 02:52:47

1

如果你已经在你的专辑在Facebook上的图像,并希望在你的时间表或朋友分享图片,那么你可以使用object_attachment标签。这是你如何做到这一点的对象 - C:

NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys: 
            //         @"http://www.bitsonthego.com", @"link", 
            {image id of your image goes here}, @"object_attachment", 
            @"my profile", @"name", 
            @"description", @"description", 
            @"name of the post", @"name", 
            @"caption of my post", @"caption", 
            @"a message", @"message", 
            nil]; 

    [facebook requestWithGraphPath:@"/me/feed" andParams:params andHttpMethod:@"POST" andDelegate:self]; 

没有必要让你的形象的另一个副本或本地主机它。

相关问题