2013-06-08 20 views
5

Uygulamamın kullanıcının adına bir kullanıcının duvarında yayınlanmasını istiyorum (örneğin, reklam için). Her hafta sunucumda bir cron işi ile çalışacağım bir php betiği oluşturmayı düşünüyorum. Veritabanımda kullanıcı grupları var. Şimdi, komut dosyasının kullanıcı tarafından alınmasını ve ardından kullanıcının duvarına gönderilmesini istiyorum. (Tabi ki kullanıcı uygulamayı hala yüklediyse ve yayın akışına izin verdiyse), bunu tetikleyen bir komut dosyası oluşturmak mümkün mü?
$ post = $ facebook-> api ("/ $ user1/feed", "POST", $ params); veya
$ post = $ facebook-> api ("/ $ user2/feed", "POST", $ params); vb...? Sorununuzu çözmek için tavsiyeKullanıcının duvarına otomatik olarak gönder (facebook Uygulaması)

<?php 

require 'src/facebook.php'; 
$app_id = 'yourappid'; 
$app_secret = 'yourappsecret'; 
$app_namespace = 'appname'; 
$app_url = 'https://apps.facebook.com/' . $app_namespace . '/'; 
$scope = 'email,publish_actions'; 


// Init the Facebook SDK 
$facebook = new Facebook(array(
'appId' => $app_id, 
'secret' => $app_secret, 
)); 



// Get the current user 
$user = $facebook->getUser(); 

// If the user has not installed the app, redirect them to the Auth Dialog 
if (!$user) { 
    $loginUrl = $facebook->getLoginUrl(array(
    'scope' => $scope, 
    'redirect_uri' => $app_url, 
)); 

    print('<script> top.location.href=\'' . $loginUrl . '\'</script>'); 

    } 


    else { 

     try { 
     $params = array(
      'message'  => "your message", 
      'name'   => "hello world", 
      'description' => "hello world", 
      'link'   => "hello world", 
      'picture'  => "hello world", 
     ); 

     $post = $facebook->api("/$user/feed","POST",$params); 

     echo ""; 

    } 
     catch (FacebookApiException $e) { 
     $result = $e->getResult(); 
    } 

    } 

?> 
+0

Yukarıdaki kodla ilgili sorunlarınız nelerdir, bunun yanında sizin için bunu sizin için program yapmasını istemeniz gerekir. –

+0

bunu tetikleyen bir komut dosyası oluşturmak mümkün mü? $ post = $ facebook-> api ("/ $ user1/feed", "POST", $ params); veya $ post = $ facebook-> api ("/ $ user2/feed", "POST", $ params); vb...? –

cevap

4

için

teşekkürler, seninle benim kod paylaşacak. bu benim için çalıştı.

Tüm kullanıcı kimliklerini veritabanınızdan seçmek için biraz döngü yazmanız gerekiyor.

<?php 

    //// publish as status 

    //// publish post to users 


     require_once("facebook.php"); 


     $app_id = "xxxxxxxxxxx"; 
     $app_secret = "xxxxxxxxxxxxxx"; 
     $my_url = "http://t.xxxxx.net/facebook/publish.php/"; // refer number 

    /// 
     $config = array(); 
     $config['appId'] = 'xxxxxxxx'; 
     $config['secret'] = 'xxxxxxxxxxxx'; 
     $config['fileUpload'] = false; // optional 

     $facebook = new Facebook($config); 
     /// 

    //// 

     function getAccessToken() { 
     if ($this->accessToken !== null) { 
      return $this->accessToken; 
     } 

     $this->setAccessToken($this->getApplicationAccessToken()); 
     $user_access_token = $this->getUserAccessToken(); 
     if ($user_access_token) { 
      $this->setAccessToken($user_access_token); 
     } 

     return $this->accessToken; 
     } 

     function getApplicationAccessToken() { 
     return $this->appId.'|'.$this->appSecret; 
    } 


    /////////////////////////////// Update status Function 
    //xxxxxxxx 
    $session = $facebook->getUser(); 



    // New SDK 
    $facebook->api (array(
     'method' => 'users.setStatus', 
    'status' => 'Hi 
this new status by my app 

    ', 
     'uid' => '21511',/// user_id 
     'session'=>$session, 
    )); 


    ?> 
+1

Çok teşekkür ederim :) Ama yığın yığınında biraz okuduktan sonra, bu mesajı gördüm: http://stackoverflow.com/a/15948611/2466312 Yani (iyi) çözümün artık işe yaramayacağını düşünüyorum:/?? –

+1

Bu hala çalışıyor, teşekkürler –

İlgili konular