2016-10-05 4 views
2

Я пытаюсь использовать очереди личинок для публикации в Facebook, мне не повезло! мой код работает отлично, не используя очереди, но мне нужно иметь возможность использовать тот же код с que.Laravel Queue and posting to Facebook

Я получаю это исключение в моей неудачной работе таблицы:

exception 'Exception' with message '[220] Your credentials do not allow access to this resource.' in /home/vagrant/sites/pms/vendor/thujohn/twitter/src/Thujohn/Twitter/Twitter.php:297 

мой исходный код для размещения изображения на Facebook выглядит следующим образом:

try { 
    $fb->setDefaultAccessToken($token); 
    $fb->post('/me/photos', [ 
     'url' => cloudinary_url("$photorequest"), 
     'caption' => $body . $userPage 
    ]); 
} catch (Facebook\Exceptions\FacebookResponseException $e) { 
    // continue to next request; 
} 

теперь меня пытаются использовать дие, я сделал это в моей папке заданий:

namespace PMS\Jobs; 

use PMS\Jobs\Job; 
use Illuminate\Http\Request; 
use SammyK\LaravelFacebookSdk\LaravelFacebookSdk; 
use Facebook; 
use Session; 
use PMS\Photo; 
use Illuminate\Queue\SerializesModels; 
use Illuminate\Queue\InteractsWithQueue; 
use Illuminate\Contracts\Queue\ShouldQueue; 

class PostToFBwithImage extends Job implements ShouldQueue { 
    use InteractsWithQueue, SerializesModels; 

    public $fb; 
    public $token; 
    public $photorequest; 
    public $userPage; 
    public $body; 

    /** 
    * Create a new job instance. 
    * 
    * @return void 
    */ 
    public function __construct($token, $photorequest, $userPage, $body) { 
     $this->token = $token; 
     $this->photorequest = $photorequest; 
     $this->userPage = $userPage; 
     $this->body = $body; 
    } 

    /** 
    * Execute the job. 
    * 
    * @return void 
    */ 
    public function handle(LaravelFacebookSdk $fb) { 
     try { 
      $fb->setDefaultAccessToken($token); 
      $fb->post('/me/photos', [ 
       'url' => cloudinary_url("$photorequest"), 
       'caption' => $body . $userPage 
      ]); 
     } catch (Facebook\Exceptions\FacebookResponseException $e) { 
      // continue to next request; 
     } 
    } 
} 

и называя это в моем контроллере:

$this->dispatch(new PostToFBwithImage($token, $photorequest, $userPage, $body)); 

Я знаю, что я делаю что-то не так в классе PostToFBwithImage, я просто не знаю, что?

+0

Какой драйвер очереди вы используете? И каким образом этот код не работает? Вы получаете какие-либо ошибки? – Aron

ответ

0

не должны это

$fb->setDefaultAccessToken($token); 
$fb->post('/me/photos', ['url' => cloudinary_url("$photorequest"),'caption' => $body . $userPage]); 

быть это

$fb->setDefaultAccessToken($this->token); 
$fb->post('/me/photos', ['url' => cloudinary_url($this->photorequest), 'caption' => $this->body . $this->userPage]); 

?

Кроме того, вы уверены, что передаете правильные значения конструктору при создании задания?