2013-06-08 1 views
5

Я хочу, чтобы мое приложение публиковали на стене пользователя от имени (например, для рекламы). Я думаю о создании php-скрипта, который я буду выполнять с заданием cron на моем сервере каждую неделю. У меня есть идентификаторы пользователей в моей базе данных. Теперь я хочу, чтобы скрипт получил идентификатор пользователя, а затем сообщения на стене пользователя. (конечно, если пользователь все еще установил приложение и предоставил разрешение на публикацию потока)Опубликовать автоматически на стене пользователя (facebook App)

Возможно ли создать скрипт, который запускает это?
$ post = $ facebook-> api ("/ $ user1/feed", "POST", $ params); или
$ post = $ facebook-> api ("/ $ user2/feed", "POST", $ params); и т.д...?

Спасибо за советом

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

И каковы ваши проблемы с кодом выше, кроме того, что вы просите сообщество запрограммировать это для вас? –

+0

Можно ли создать скрипт, который запускает это? $ post = $ facebook-> api ("/ $ user1/feed", "POST", $ params); или $ post = $ facebook-> api ("/ $ user2/feed", "POST", $ params); и т.д...? –

ответ

4

Чтобы решить проблему, я поделюсь с вами код. Это сработало для меня.

Вам нужно просто написать какой-то цикл, чтобы выбрать всех пользователей из своей базы данных.

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

Большое спасибо :) Но после небольшого чтения здесь, в stackoverflow, я увидел это сообщение: http://stackoverflow.com/a/15948611/2466312 Так что я думаю, что ваше (хорошее) решение больше не будет работать:/?? –

+1

Это все еще работает, спасибо –

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

  • Нет связанных вопросов^_^