2013-06-08 19 views
5

Chcę, aby moja aplikacja była umieszczana na ścianie użytkownika w imieniu (np. W celach reklamowych). Myślę o stworzeniu skryptu php, który będę wykonywać z cronem na moim serwerze co tydzień. Mam użytkowników w mojej bazie danych. Teraz chcę, aby skrypt otrzymał identyfikator użytkownika, a następnie wpisy na ścianie użytkownika. (oczywiście, jeśli użytkownik nadal zainstalował aplikację i przyznał jej zezwolenie na publikowanie), to czy możliwe jest utworzenie skryptu, który to uruchomi?
$ post = $ facebook-> api ("/ $ user1/feed", "POST", $ params); lub
$ post = $ facebook-> api ("/ $ user2/feed", "POST", $ params); itp...?Publikuj automatycznie na ścianie użytkownika (aplikacja Facebook)

podziękować za radą

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

Jakie są twoje problemy z powyższym kodem, oprócz tego, że prosisz społeczność, aby to zaprogramowała? –

+0

Czy można utworzyć skrypt, który uruchamia to? $ post = $ facebook-> api ("/ $ user1/feed", "POST", $ params); lub $ post = $ facebook-> api ("/ $ user2/feed", "POST", $ params); itp...? –

Odpowiedz

4

rozwiązać swój problem, będę dzielić się z wami mój kod. to działało dla mnie.

Wystarczy tylko napisać pętlę, aby wybrać wszystkich użytkowników id z bazy danych.

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

Dziękuję bardzo :) Ale po trochę czytania tutaj na stackoverflow, widziałem ten post: http://stackoverflow.com/a/15948611/2466312 Więc myślę, że twoje (dobre) rozwiązanie nie będzie już działać:/?? –

+1

To nadal działa, dzięki –