- SDKが正しくロードされていることを確認してください。
- アプリには
photo_upload
&publish_stream
権限が必要です。
$file
画像への相対パスである必要があります。例:/ path / to / image / file
- 渡すPOSTパラメータは、そう
image
ではありません。source
したがって、最終バージョンは次のようになります(上記を修正した後)。
<?php
require_once('images/Facebook.php');
$facebook = new Facebook(array(
'appId' => 'YOUR_APP_ID',
'secret' => 'YOUR_APP_SECRET',
));
# Get User ID
$user = $facebook->getUser();
if ($user) {
try {
# Photo Caption
$photoCaption = 'My Photo Caption!';
# Relative Path to your image.
$file = 'plaukai/images/PlaukaiNeuzvedus.jpg';
# Post Data for Photos API
$post_data = array(
'message' => $photoCaption,
'source' => '@' . realpath( $file )
);
$apiResponse = $facebook->api('/me/photos', 'POST', $post_data);
} catch (FacebookApiException $e) {
$user = null;
error_log($e);
}
} else {
$loginUrl = $facebook->getLoginUrl( array(
'scope' => 'publish_stream,photo_upload'
));
echo("<script>top.location.href = '" . $loginUrl . "';</script>");
}
?>
注:setAccessToken / getAccessTokenは、他のコードで使用されていない限り必要ないため削除しましたがaccess_token
、アプリがAPI呼び出しを行うと、SDKが現在のユーザーを自動的に渡すため必要ありません。
お役に立てば幸いです。ご不明な点がありましたらお知らせください。
PS上記のコードはテストしていませんが、他に問題がない限り機能する必要があります。
編集1:
次のいずれかの解決策も試してください。
解決策1:
# Photo Caption
$photoCaption = 'My Photo Caption!';
# Relative Path to your image.
$file = 'plaukai/images/PlaukaiNeuzvedus.jpg';
# Post Data for Photos API
$post_data = array(
'message' => $photoCaption,
'image' => '@' . realpath( $file )
);
解決策2:解決策2:
# Photo Caption
$photoCaption = 'My Photo Caption!';
# Absolute Path to your image.
$imageUrl = 'http://placehold.it/500x500/'; // Example URL
# Post Data for Photos API
$post_data = array(
'message' => $photoCaption,
'url' => $imageUrl
);
編集2:
リクエストしたコードは次のとおりです。
$redirectUri = 'http://domain.com/myapp/';
$loginUrl = $facebook->getLoginUrl( array(
'scope' => 'publish_stream,photo_upload',
'redirect_uri' => $redirectUri
));
echo("<script>top.location.href = '" . $loginUrl . "';</script>");