【发布时间】:2011-05-17 10:43:36
【问题描述】:
有没有办法使用graph api改变用户的头像?
我知道你不能使用其他 api (reference),但我在新的图形 api 中找不到任何东西。
【问题讨论】:
标签: facebook facebook-graph-api
有没有办法使用graph api改变用户的头像?
我知道你不能使用其他 api (reference),但我在新的图形 api 中找不到任何东西。
【问题讨论】:
标签: facebook facebook-graph-api
使用 Graph API 将图片上传到现有相册(或创建新相册)。 看起来像这样:
$args = array('message' => 'Caption');
$args['image'] = '@' . realpath("the_image.png");
try {
$data = $facebook->api('/'.$album_uid.'/photos', 'post', $args);
}
catch(Exception $e) {
print "<pre>";
print_r($e);
print "</pre>";
}
然后通过 Graph API 获取上传的图片并重定向到图片的链接,在查询字符串中添加&makeprofile=1。用户现在将被重定向到个人资料图像裁剪页面:
try {
$pictue = $facebook->api('/'.$data['id']);
header("Location: ".$pictue['link']."&makeprofile=1");
}
catch(Exception $e) {
print "<pre>";
print_r($e);
print "</pre>";
}
【讨论】:
PicBadges 应用程序(不再可用)清楚地完成了这项工作。看看他们的应用程序。很清楚他们是如何实施的。
他们不会直接将图片上传到“个人资料图片”相册。相反,他们像往常一样上传到他们自动生成的相册(在他们的应用程序名称上),然后选择图片作为“个人资料图片”。但是,此方法涉及将用户重定向到他们需要在完成之前裁剪它的页面。
需要注意的有趣实现!
【讨论】:
您可以使用 Graph API 上传到用户的个人资料图片相册,但您似乎无法更新 /me/picture 值以将用户当前的个人资料图片设置为您上传的图片。
【讨论】:
用户图片: Graph API 版本 v6.0
阅读
你可以得到端点/{user-id}/picture的图片
创作
您无法在此端点上执行此操作。
更新
您无法在此端点上执行此操作。
删除
您无法在此端点上执行此操作。
【讨论】:
我也有这个问题。我已经设法使用此端点上传了个人资料图片。
此link 提供有关如何上传个人资料图片的信息
private async uploadProfilePhoto(pageId:string, accessToken: string, photoUrl: string){
let url = FACEBOOK_API_URL + `${pageId}/picture`+
`?access_token=${accessToken}`+
`&picture=${photoUrl}`;
let response = null;
try {
response = await axios({
method: 'post',
url: url,
});
} catch (err) {
/** Here this error occures but the profile image is still uploaded.
* {message: 'Unsupported post request.', type: 'GraphMethodException', code: 100, fbtrace_id: 'AGhsadasdaiqyf_YHJaztdasdadG7'
*/
}
return response;
}
然后要获取头像的 id,以备不时之需,您可以在此端点上执行 get 请求。
const FACEBOOK_API_URL ='https://graph.facebook.com/v7.0/'
let url = FACEBOOK_API_URL + `${pageId}/photos`+
`?access_token=${accessToken}` +
`&fields=picture`;
【讨论】: