我正在制作一个将照片上传到Facebook的应用,然后可选择将链接发布到用户的墙上。我想知道是否可以为帖子分配与上传到的照片或相册相同的可见性权限。我可以非常轻松地从相册中获得可见性权限。
是否可以为墙贴设置相同的权限,如果是,如何?
澄清:我不是指实际文件的客户端权限。通过权限,我的意思是从getAlbum(s)API传递的'visibility'标签。 (即:可见性:每个人,朋友,习俗等)
这样,如果用户将相册设置为仅对他/她的朋友可见,并且他们已选择将照片上传到该相册,那么当照片在其流(墙)中链接时,它具有相同的可见性设置为其所在的专辑。
示例:Joe在Facebook上创建了一个名为“Summer Fun”的相册,只有他的“朋友”才能看到。 Joe使用我的应用程序上传“Summer Fun”专辑的照片。我检查相册的“可见性”字段,看它设置为“朋友”。 Joe还希望将这张照片的链接发布到他的墙上,我的应用程序可以使用流发布API轻松完成。由于他将“Summer Fun”专辑的隐私设置设置为“朋友”,我希望我的应用程序在发布到墙上时尊重该设置。使墙贴仅对同一群人可见,他称之为“朋友”。
换句话说,是否可以设置可以编程方式查看墙贴的人群,就好像您要点击facebook.com上的小“分享”下拉菜单并将其设置为“朋友”一样? / p>
答案 0 :(得分:2)
Jayrox,似乎目前无法 it is possible以编程方式设置墙贴的可见性。
引用文章:
当您想要显示内容时a 用户已创建,检查隐私 通过查询来查找内容 privacy FQL table或中的object_id 致电privacy.get。
如果您检索用户分配到其相册的隐私设置,则可以通过Stream.publish
将相同的隐私设置分配到墙上帖子此外,用户可以通过应用程序设置自定义显示在墙上的内容,并可以通过他的隐私设置控制谁可以看到他的墙。 应用程序无法更改墙帖的可见性(即使是将可见性限制为比用户隐私设置通常允许的人数更少的人。)
换句话说,用户可以控制谁可以看到他的墙壁以及可以写在墙上的东西,但是他无法设置某些墙贴的可见性。如果贴在墙上,那些可以看到他的墙贴的人就可以看到。
然而,有一个有趣的问题 - 如果一个用户有一群人可以看到他的墙,但不允许看到他的笔记,那么这些人会是:
A)能够查看有关新笔记的壁挂帖但无法查看这些帖子
B)自动查看关于新笔记的贴墙帖。
如果答案是 B ,那么您应该没问题,因为用户的隐私设置会自动生效。
查看:强>
http://www.allfacebook.com/2009/02/facebook-privacy/
http://wiki.developers.facebook.com/index.php/Stream.publish
http://wiki.developers.facebook.com/index.php/Extended_permissions/Stream_permissions
答案 1 :(得分:0)
如果您只想将照片上传到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>';
?>