我总结了我上面的问题,因为我张贴了2个问题没有响应。 所以我解决了我的问题,我发布了一个解决方案,以帮助另一个人的stackoverflow社区。
- 就一定要断言右边persmission“publish_actions”,“user_photos”
- 知道,你必须在上传之前的照片和标签后人们:
要使用Facebook SDK 3.5上传在Facebook上的照片。
要上传在Facebook上的照片
... //put update method where you need
Session session = Session.getActiveSession();
Bitmap img = .... //your bitmap
if (img != null) {
Request request = Request.newUploadPhotoRequest(Session.getActiveSession(), img, uploadPhotoRequestCallback);
Bundle parameters = request.getParameters();
parameters.putString("message", "my personal massage");
// add more params here
request.setParameters(parameters);
request.executeAsync();
}
...
private String idUploadResponse;
Request.Callback uploadPhotoRequestCallback = new Request.Callback() {
@Override
public void onCompleted(Response response) {
if (response.getError() != null) {
// post error
} else {
idUploadResponse= (String) response.getGraphObject().getProperty("id");
if (idUploadResponse!= null) {
String fbPhotoAddress = "https://www.facebook.com/photo.php?fbid=" + idUploadResponse;
tagPeople();
} else {
// error
}
}
}
};
idUploadResponse是在Facebook上的照片的身份证。
用idUploadResponse您可以标记朋友。 uid1变量调用用户的id(从facebook获取)。
public void tagPeople(){
Bundle params = new Bundle();
params.putString("to", uid1);
Session session = Session.getActiveSession();
final String requestId = idUploadResponse +"/tags";
Request request = new Request(session, requestId, params, HttpMethod.POST, new Request.Callback() {
public void onCompleted(Response response) {
GraphObject graphObject = response.getGraphObject();
FacebookRequestError error = response.getError();
if (error != null) {
Log.e("Error", error.getErrorMessage());
}
}
});
Request.executeAndWait(request);
}
要标记多用户
protected void tagPeople() {
Bundle params = new Bundle();
String multiTag= "[{'tag_uid':'"+uid1+"'} ,{'tag_uid':'"+uid2+"'}, {'tag_uid':'"+uid3+"'}]";
params.putString("tags", multiTag);
....
}
如何给予相应的权限? – RobinHood
非常感谢你张贴答案..god祝福你:) – jyomin