2011-03-16 18 views

cevap

4

Önce bir kullanıcıyla facebook bağlantısı yoluyla yetkilendirme yapmalı ve bu isteğin bir parçası olarak manage_pages iznini istemelisiniz. Söz konusu sayfa için bir jeton ve sır almak için bu izni kullanabilirsiniz. Daha sonra, kullanıcı için aldığınız belirteç/sırrın aksine istekleri yetkilendirmek için kullanabilirsiniz.

Kontrol dışarı bazı ek bilgi için bu sayfanın "Sayfa Giriş" bölümü: http://developers.facebook.com/docs/authentication/

+0

mesaj uygulamasına ait (veya herhangi bir Facebook sayfası) olarak imzalanan gereklidir ziyade, gibi bir şey kodudur Facebook kullanıcısından daha Aşağıdaki durumu düşünün: 1. Uygulamanın kullanıcısı (Facebook'un değil!), Içinde bazı eylemler gerçekleştirir; 2. Uygulama, kendi Facebook duvarında veya sayfasındaki olaylar hakkında bir mesaj ekler. Kesinlikle, uygulamanın kullanıcısı Facebook'a kayıtlı olmak zorunda değildir. Sadece Facebook'taki uygulamanın uygulama duvarına mesaj yazabilme becerisi ve yazar olarak başvuru yapabilmesi şarttı. – WASD42

10

Sen publish_stream,manage_pages izinleri gerekir. Yazılı ve bu konuda derinlemesine öğretici ettik

<?php 
// This code is just a snippet of the example.php script 
// from the PHP-SDK <https://github.com/facebook/facebook-php-sdk/blob/master/examples/example.php> 
require '../src/facebook.php'; 

// Create our Application instance (replace this with your appId and secret). 
$facebook = new Facebook(array(
    'appId' => 'app_id', 
    'secret' => 'app_secret', 
)); 

// Get User ID 
$user = $facebook->getUser(); 

if ($user) { 
    try { 
    $page_id = 'page_id'; 
    $page_info = $facebook->api("/$page_id?fields=access_token"); 
    if(!empty($page_info['access_token'])) { 
     $args = array(
      'access_token' => $page_info['access_token'], 
      'message'  => "I'm a Page!" 
     ); 
     $post_id = $facebook->api("/$page_id/feed","post",$args); 
    } else { 
     $permissions = $facebook->api("/me/permissions"); 
     if(!array_key_exists('publish_stream', $permissions['data'][0]) || 
      !array_key_exists('manage_pages', $permissions['data'][0])) { 
      // We don't have one of the permissions 
      // Alert the admin or ask for the permission! 
      header("Location: " . $facebook->getLoginUrl(array("scope" => "publish_stream, manage_pages"))); 
     } 

    } 
    } catch (FacebookApiException $e) { 
    error_log($e); 
    $user = null; 
    } 
} 

// Login or logout url will be needed depending on current user state. 
if ($user) { 
    $logoutUrl = $facebook->getLogoutUrl(); 
} else { 
    $loginUrl = $facebook->getLoginUrl(array('scope'=>'manage_pages,publish_stream')); 
} 

// ... rest of your code 
?> 

: How To: Post On Facebook Page As Page Not As Admin User Using PHP-SDK

+0

Bu, hala Facebook'ta oturum açacak bir kullanıcıya ihtiyaç duyuyor, değil mi? "Geçerli kullanıcı hakkındaki bilgileri sorgulamak için etkin bir erişim belirteci kullanılmalıdır." error:/Ben söyleyemem: "Hey, Uygulama, o duvara bir yazı yap!" :] – WASD42

+0

@ WASD42: Burada/me/hesaplarını görebildiğiniz gibi, sayfanın yöneticisine ihtiyacınız olacak, böylece hesabını kullanmak için 'account' sayfasından 'access_token' alabilirsiniz. – ifaour

+2

Muhtemelen 'offline_access' iznini de eklemelisiniz! – vinzenzweber

İlgili konular