我有疑问如何将照片发布到用户的墙上?我读了很多教程,但出了点问题。 最后我做了什么,遵循本教程: http://www.masteringapi.com/tutorials/how-to-upload-a-photo-to-a-users-profile-using-facebook-graph-api/66/
我已经设置了publish_stream的权限。我现在没有收到任何错误,只是没有在墙上张贴照片。也许有什么问题 $文件位置...我不知道,如果可以的话请帮助我。非常感谢。
最佳答案
- 确保 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,因为除非它们与其他代码一起使用,否则不需要这些,因为 SDK 会自动传递当前的 access_token
当您的应用进行任何 API 调用时,用户。
希望对您有所帮助,如果您有任何疑问,请告诉我。
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:
# 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>");
关于Facebook。 API。如何在用户墙上发布照片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14504397/