2009-12-28 3 views
4

Я в процессе создания приложения, которое загружает фотографии на Facebook, а затем, возможно, размещает ссылку на стену пользователя. Я хотел бы знать, можно ли назначить одинаковые разрешения на видимость для публикации в качестве фотографии или фотоальбома, на который он загружен. Я могу легко получить разрешения на доступ к видимости из альбома.Facebook Stream.publish установить разрешение на основе подключенных средств массовой информации

Можно ли установить такое же разрешение на стену, и если да, то как?

Уточнение: я не имею в виду разрешения на стороне клиента для фактического файла. Под разрешениями я имею в виду тег «видимости», переданный из API getAlbum (s). (т. е.: Видимость: все, друзья, пользовательские и т. д.)

Таким образом, если пользователь устанавливает, что альбом будет доступен только для его/ее друзей, и они выбрали для загрузки фотографии в этот альбом, фото привязывается в их потоке (стенах), он имеет те же параметры видимости, что и альбом, в котором находится его.

Пример: Джо создает фотоальбом на Facebook под названием «Летнее развлечение», что видно только его «Друзья». Джо использует мое приложение для загрузки фотографии в альбом «Summer Fun». Я проверяю поле «Видимость» альбома и вижу, что он настроен на «Друзья». Джо также хочет, чтобы ссылка на эту фотографию была отправлена ​​на его стену, в которой мое приложение может легко сделать, используя API публикации потока. Из-за настройки конфиденциальности альбома Summer Fun, установленного на «Друзья», я хотел бы, чтобы мое приложение соблюдало эту настройку при отправке на стену. Создание стенового сообщения видимо только той же группе людей, которую он называет своими «Друзьями».

Другими словами, можно ли задавать группу людей, которые могут видеть пост стены программно, как если бы вы попали в маленький «Share» на facebook.com и установили его только в «Друзья»?

  1. Язык: PHP5
  2. Использование: REST API Facebook, локон, однако открыты для альтернативных вариантов, если это необходимо, чтобы получить конечный результат мне нужно.
+0

уверены, я хотел бы знать, тоже. – Jayrox

+1

вы, вероятно, уже видели это, но теперь это возможно. См. Мой пересмотренный ответ. –

+0

Да, я это видел! Я очень рад. Теперь мне просто нужно выяснить, как получить список идентификаторов сети пользователя, и я стану золотым. – Jayrox

ответ

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>'; 
?> 
+0

Теперь я могу загружать фотографии без проблем. Проблема, которую я пытаюсь решить, заключается в размещении ссылки на телефон на стене пользователя, которая включает те же настройки конфиденциальности, что и фотография и ее альбом. – Jayrox

2

Jayrox, кажется, что это в настоящее время невозможно it is possible, чтобы программно настроить видимость настенных постов.

Цитируя статью:

Если вы хотите, чтобы отобразить содержимое создавшего пользователя, проверьте приватность для содержания, запрашивая object_id в privacy FQL table или по телефону 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

+0

Шон, пример А - это именно то, что я пытаюсь обойти/выяснить/проверить. Когда мое приложение публикует фотографию, и пользователь выбрал ее, чтобы разрешить ее перекрестке на стене, я не хочу, чтобы люди, которые могли видеть его стену, не могли видеть альбом, чтобы увидеть стену. Я не знаю, что они увидят, во всяком случае. Думаю, я должен сделать вторую учетную запись Facebook и проверить ее. – Jayrox

+0

Также, спасибо за дополнительные ссылки. Я проведу их из дома сегодня вечером :) – Jayrox

Смежные вопросы