例如我在我的网站上安装了WordPress。我想通过URL上传Facebook上的图片。我的图片网址是:
http://example.com/wp-content/abc123.jpg
现在,我想通过我自己的网站将这张图片直接上传到特定的相册中。我完全是N00b!所以对编码一无所知..
我的目标是创建一个封面网站。
* 第二次更新 * : 这是我现在正在使用的代码:
<?php
$app_id = "12354";
$app_secret = "1213243434";
$post_login_url = "http://example.com/sdsds";
$album_id = "1234224";
$photo_url = "http://example.coom/test.jpg";
$photo_caption = "my caption";
$code = $_REQUEST["code"];
//Obtain the access_token with publish_stream permission
if (!$code){
$dialog_url= "http://www.facebook.com/dialog/oauth?"
. "client_id=" . $app_id
. "&redirect_uri=" . urlencode( $post_login_url)
. "&scope=publish_stream";
echo("<script>top.location.href='" . $dialog_url
. "'</script>");
} else {
$token_url="https://graph.facebook.com/oauth/access_token?"
. "client_id=" . $app_id
. "&client_secret=" . $app_secret
. "&redirect_uri=" . urlencode( $post_login_url)
. "&code=" . $code;
$response = file_get_contents($token_url);
$params = null;
parse_str($response, $params);
$access_token = $params['access_token'];
// POST to Graph API endpoint to upload photos
$graph_url= "https://graph.facebook.com/"
. $album_id . "/photos?"
. "url=" . urlencode($photo_url)
. "&message=" . urlencode($photo_caption)
. "&method=POST"
. "&access_token=" .$access_token;
echo '<html><body>';
echo file_get_contents($graph_url);
echo '</body></html>';
}
?>
所以从这段代码我可以上传“test.jpg”到脸书网但现在的问题是我不想只上传一张图片,我想上传很多图片所以我不想改变“$ photo_url =”http://example.coom/test.jpg“;”此代码为新照片任何帮助将不胜感激!
答案 0 :(得分:4)
您无法从网址上传照片,因为您实际上没有上传照片,所以甚至不会将其视为“上传”,只需指向该网址。
您需要做的是获取实际图像数据并通过POST请求将其自己发送到此网址:
https://graph.facebook.com/ALBUM_ID/photos
使用params:消息和消息来源。
如果您在服务器上没有本地图像,那么您需要下载它,阅读其内容,然后将其发布到Facebook。
感谢@TommyBs评论,我发现通过网址上传是不可能的。 我会留下答案,因为它谈到了替代方案。
如果你想上传一些图片,你有2个选项(我看到它):
(1)使用facebook提供的Batch Requests。 你必须测试它是否适用于这种特定的方法,我不知道,因为我从来没有尝试使用网址将图像上传到Facebook。
(2)按图像发送请求,例如:
function uploadPicture($albumId, $photoUrl, $message, $token) {
$url= "https://graph.facebook.com/"
. $albumId . "/photos?"
. "url=" . urlencode($photoUrl)
. "&message=" . urlencode($message)
. "&method=POST"
. "&access_token=" . $token;
return file_get_contents($url);
}
然后只使用不同参数重用此函数。