Здравствуйте друзья,
Я сделал приложение для Facebook, которое будет загружать фотографии в новый альбом. Я настроил приложение для Facebook и написал код. Он отлично работает для тестового пользователя. Теперь, как я вижу, publish_actions одобрены, поскольку на разрешении нет признаков ошибки. Но это все еще не работает для всех пользователей, работает только для тестовых пользователей.
Я делюсь с вами кодом: —
$fb = new Facebook\Facebook(['app_id' => 'xxxxxxxxxxxx',
'app_secret' => 'xxxxxxxxxxxxxxxxxxxx',
'default_graph_version' => 'v2.2',
]);
$helper = $fb->getRedirectLoginHelper();
try {
$accessToken = $helper->getAccessToken();
} catch(Facebook\Exceptions\FacebookResponseException $e) {
echo 'Graph returned an error getting TOKEN : ' . $e->getMessage();
exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
// When validation fails or other local issues
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
if (isset($accessToken)) {
// Logged in!
$_SESSION['facebook_access_token'] = (string) $accessToken;
$fb->setDefaultAccessToken($accessToken);
$batch = [
'photo-one' => $fb->request('POST', '/'.$albId.'/photos', [
'message' => 'Foo photo',
'source' => $fb->fileToUpload('img/2.jpg'),
]),
'photo-two' => $fb->request('POST', '/'.$albId.'/photos', [
'message' => 'Fool photo',
'source' => $fb->fileToUpload('img/1.jpeg'),
])
];
try {
$responses = $fb->sendBatchRequest($batch);
} catch(Facebook\Exceptions\FacebookResponseException $e) {
// When Graph returns an error
echo 'Graph returned an error UP PICS: ' . $e->getMessage();
exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
// When validation fails or other local issues
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
foreach ($responses as $key => $response) {
if ($response->isError()) {
$e = $response->getThrownException();
echo '<p>Error! Facebook SDK Said: ' . $e->getMessage() . "\n\n";
echo '<p>Graph Said: ' . "\n\n";
var_dump($e->getResponse());
} else {
echo "<p>(" . $key . ") HTTP status code: " . $response->getHttpStatusCode() . "<br />\n";
echo "Response: " . $response->getBody() . "</p>\n\n";
echo "<hr />\n\n";
}
}
Задача ещё не решена.
Других решений пока нет …