我正在玩facebook sdk,并希望允许我们的用户将图片发布到他们的相册,但不能上传图片。
基本上,我们为登录用户提供动态页面,可以动态创建动态图像。
检查facebook SDK,我可以让一切工作正常,如果我允许用户“上传”图像,但我无法弄清楚如何附加已经在网页上的图像..
例如。让我们说页面上的图片是https://stackoverflow.com/images/my_image.jpg
在facebook SDK中:(剪切代码) - 用于上传图片
if(empty($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
. "&redirect_uri=" . urlencode( $post_login_url)
. "&client_secret=" . $app_secret
. "&code=" . $code;
$response = file_get_contents($token_url);
$params = null;
parse_str($response, $params);
$access_token = $params['access_token'];
// Show photo upload form to user and post to the Graph URL
$graph_url= "https://graph.facebook.com/me/photos?"
. "access_token=" .$access_token;
echo '<html><body>';
echo '<form enctype="multipart/form-data" action="'
.$graph_url .' "method="POST">';
echo 'Please choose a photo: ';
echo '<input name="source" type="file"><br/><br/>';
echo 'Say something about this photo: ';
echo '<input name="message"
type="text" value=""><br/><br/>';
echo '<input type="submit" value="Upload"/><br/>';
echo '</form>';
echo '</body></html>';
所以我的问题是,有没有办法可以发送特定图片,而不是在上面的表格中上传图片?
这可能是人类已知的最明显的问题,我只是谷歌试图弄明白。
答案 0 :(得分:1)
您只能以这种方式发布图像链接。如果您想将真实图像发布到Facebook,则必须先将图像下载到服务器。
像file_get_contents(PATH_TO_IMAGE)
这样简单的工作就可以了。一旦将文件发布到Facebook,您就可以随时从服务器中删除该文件。
有一些方法详细here有关如何上传照片而没有文档中提供的上传表单。