Facebook stream.publish bağlı medya dayalı iznini ayarlamak

2 Cevap php

Facebook için fotoğraf yüklediğinde ve ardından isteğe bağlı kullanıcının duvarına bir bağlantı nakleder bir uygulamayı yapma sürecinde duyuyorum. Bu fotoğraf ya da yüklenir fotoğraf albümü olarak yazılan aynı görünürlük izinleri atamak mümkün olup olmadığını bilmek istiyorum. Ben oldukça kolay albümünden görünürlük izinleri almak mümkün duyuyorum.

Nasıl, duvar mesaja aynı izni ayarlamak, ve eğer öyleyse mümkün mü?

Açıklama: Ben gerçek dosya istemci tarafı izinleri anlamına gelmez. Izinleriyle Ben getAlbum (ler) API geçti 'görünürlük' etiketi demek. (Yani: Görüş: Herkes, Arkadaşlık, Özel, vb)

Bu şekilde, kullanıcı onun / arkadaşlarına sadece görünür bir albüm setleri ve fotoğraf kendi akışı (duvar) bağlantılı aldığında bu gibi aynı görünürlük ayarlarını sahip o albüme yüklenmiş bir fotoğraf var seçildi varsa albüm onun located in

Örnek: Joe "Friends" sadece görünür "Summer Fun" adlı Facebook'ta bir fotoğraf albümü oluşturur. Joe "Summer Fun" albümü tho bir fotoğraf yüklemek için benim app kullanır. Ben albümün "Görünürlük" alanını kontrol etmek ve "Arkadaş" ayarlanır bakın. Joe da bu fotoğraf için bir bağlantı benim app kolayca akışı API yayımlamak kullanarak yapabilirsiniz hangi, onun duvara gönderilen istiyor. Nedeniyle "Arkadaş" ayarlanan "Summer Fun" albümü onun gizlilik ayarına Ben duvara gönderme zaman bu ayarı saygı benim app istiyorum. Insanların aynı gruba duvar sonrası sadece görünür yapma onun "Arkadaşlar" diyor.

Diğer bir deyişle, bu facebook.com aşağı küçük 'Paylaş' damla vurdu ve tek 'Friends' bunu ayarlamak için sanki programlama bir duvar mesajı görebilirsiniz kişi grubunu ayarlamak mümkün mü?

  1. Dil: PHP5
  2. Using: Facebook's REST API, cURL, however open to alternatives if need be to get the end result I need.

2 Cevap

Jayrox, it seems that it is currently not possible it is possible programlama duvar mesajların görünürlüğünü ayarlamak için.

Yazı alıntı:

When you want to display content a user has created, check the privacy for the content by querying the object_id in the privacy FQL table or by calling privacy.get.

Eğer kullanıcı kendi albümü için atar gizlilik ayarlarını almak varsa, o Stream.publish vasıtasıyla duvar mesaja aynı gizlilik ayarları atayabilirsiniz

Buna ek olarak, user Uygulama Ayarları ve Gizlilik Ayarları aracılığıyla yaptığı duvar kimlerin görebileceğini kontrol edebilirsiniz yoluyla yaptığı duvara gösterir ne özelleştirebilirsiniz; applications (o görünürlüğünü kısıtlamak için bile bile az kullanıcının gizlilik ayarlarına göre insanların normalde izin için.) Duvar mesajların görünürlüğünü değiştirmek için yeteneği var

Diğer bir deyişle, kullanıcı kimin yaptığı duvar görebilir ve ne onun duvarına yazabilir kontrol edebilirsiniz, ama bazı duvar mesajların görünürlüğünü ayarlayabilirsiniz olamaz. Onun duvara yayınlanmıştır ise, onun duvar mesajlarını görebilirsiniz edenlere görülebilir.

Ancak, ilginç bir soru var - bir kullanıcının kendi duvar görebilirsiniz ama onun notlarını görmek için izin verilmez, olacak bu insanlar bir grup insan varsa:

A) Yeni notlar duvar yayınları görmek mümkün ama onları görmek mümkün olun

B) otomatik olarak yeni notları hakkında duvar mesajları görmek değil.

Cevabınız B daha sonra kullanıcının gizlilik ayarları otomatik olarak yürürlüğe girecek bu yana, zaten ince olmalıdır.

See:

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

Sadece bu kullanmak Facebook'a fotoğraf yüklemek istiyorsanız:

Öncelikle bu Library indir facebook_php5_photoslib

Daha sonra bu kodu kullanabilirsiniz

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