【问题标题】:Facebook Stream.publish set permission based on attached mediaFacebook Stream.publish 根据附加媒体设置权限
【发布时间】:2009-12-28 02:31:50
【问题描述】:

我正在制作一个将照片上传到 Facebook 的应用程序,然后可以选择发布一个指向用户墙的链接。我想知道是否可以为帖子分配与上传照片或相册相同的可见性权限。我可以很容易地从相册中获得可见权限。

是否可以为墙帖设置相同的权限,如果可以,如何设置?

澄清:我不是指实际文件的客户端权限。权限是指从 getAlbum(s) API 传递的“可见性”标签。 (即:可见性:所有人、朋友、自定义等)

这样,如果用户将相册设置为仅对他/她的朋友可见,并且他们选择将照片上传到该相册,那么当照片链接到他们的信息流(墙)中时,它具有相同的可见性设置为其所在的专辑。

示例:Joe 在 Facebook 上创建了一个名为“Summer Fun”的相册,只有他的“朋友”才能看到。 Joe 使用我的应用程序将照片上传到“Summer Fun”相册。我检查了相册的“可见性”字段,发现它设置为“朋友”。 Joe 还希望将这张照片的链接发布到他的墙上,我的应用程序可以使用流发布 API 轻松完成该链接。由于他将“Summer Fun”专辑的隐私设置设置为“朋友”,我希望我的应用在发布到墙上时尊重该设置。让墙贴只对他称之为“朋友”的同一群人可见。

换句话说,是否有可能以编程方式设置可以看到墙帖的人群,就像您要点击 facebook.com 上的小“分享”下拉菜单并将其设置为“朋友”一样?

  1. 语言:PHP5
  2. 使用:Facebook 的 REST API、cURL,但如果需要,可以使用其他方法来获取 我需要的最终结果。

【问题讨论】:

  • 不确定,我也想知道。
  • 您可能已经看到了这一点,但现在可能。请参阅我修改后的答案。
  • 是的,我看到了!我很兴奋。现在我只需要找出如何获取用户的网络 id 列表,我就可以了

标签: php facebook


【解决方案1】:

Jayrox,目前似乎无法 it is possible 以编程方式设置墙帖的可见性。

引用文章:

当你想显示内容时 用户已创建,请检查隐私 通过查询内容 privacy FQL table 中的 object_id 或 致电privacy.get

如果您检索用户分配给他的相册的隐私设置,然后您可以通过Stream.publish将相同的隐私设置分配给墙帖

此外,用户可以通过应用程序设置自定义显示在他的墙上的内容,并可以通过他的隐私设置控制谁可以看到他的墙; 应用程序无法更改墙帖的可见性(即使将可见性限制为比用户隐私设置通常允许的人数还要少。)

换句话说,用户可以控制谁可以看到他的墙以及可以在他的墙上写什么,但他不能设置某些墙帖的可见性。如果它张贴在他的墙上,那么那些可以看到他的墙贴的人就可以看到它。

但是,有一个有趣的问题——如果用户有一群人可以看到他的墙但不允许看到他的笔记,这些人会:

A) 能够看到关于新笔记的墙贴,但无法查看它们

B) 不会自动查看有关新笔记的墙贴。

如果答案是B,那么您应该已经没问题了,因为用户的隐私设置会自动生效。

参见:

http://www.allfacebook.com/2009/02/facebook-privacy/

http://www.insidefacebook.com/2009/04/28/first-look-publishing-data-to-the-facebook-stream-using-the-new-stream-apis/

http://wiki.developers.facebook.com/index.php/Stream.publish

http://wiki.developers.facebook.com/index.php/Extended_permissions/Stream_permissions

【讨论】:

  • 肖恩,示例 A 正是我想要解决/找出/测试的。当我的应用发布照片并且用户选择允许将其交叉发布到墙上时,我不希望可以看到他的墙但看不到相册的人也看到墙上的帖子。我不知道他们会看到什么,如果有的话。我想我应该创建第二个 Facebook 帐户并进行测试。
  • 另外,感谢您提供的附加链接。今晚我会在家里检查它们:)
【解决方案2】:

如果您只想将照片上传到 Facebook,请使用:

首先下载这个库facebook_php5_photoslib

然后使用此代码

<?php
require_once 'facebook_api/facebook_php5_photoslib.php';

$appapikey = '[YOUR KEY]';
$appsecret = '[YOUR SECRET]';
$facebook = new FacebookPhotos($appapikey, $appsecret);
$user = $facebook->require_login();

$appcallbackurl = 'http://eyermonkey.com/FlickrTools/';  

//catch the exception that gets thrown if the cookie has an invalid session_key in it
try {
  if (!$facebook->api_client->users_isAppAdded()) {
    $facebook->redirect($facebook->get_add_url());
  }
} catch (Exception $ex) {
  //this will clear cookies for your app and redirect them to a login prompt
  $facebook->set_user(null, null);
  $facebook->redirect($appcallbackurl);
}

// Get a list of the users albums
$albums = $facebook->api_client->photos_getAlbums($user, null);

// Pick the first album for sake of the example
$aid = $albums[0]['aid'];

$filename = 'http://eyermonkey.com/FlickrTools/test_image.jpg';
$caption = 'IM IN UR C0D. UPLOADING UR FOTOS!!1!';

// Perform the upload and get the return data (including the URL of the new photo)
// You can do what ever you want do with that url 
$upload_result = $facebook->api_client->photos_upload($filename, $aid, $caption);

// See the data that you have access to now that the photo is uploaded
echo '<pre>';
print_r($upload_result);
echo '</pre>';
?>

【讨论】:

  • 我目前可以毫无问题地上传照片。我要解决的问题是在用户的墙上发布一个指向手机的链接,其中包含与照片及其相册相同的隐私设置。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-18
  • 1970-01-01
  • 2015-02-14
  • 1970-01-01
相关资源
最近更新 更多