gpt4 book ai didi

android - 如何使用 facebook sdk 将位图发布到 facebook?

转载 作者:行者123 更新时间:2023-11-29 15:18:43 26 4
gpt4 key购买 nike

我找不到使用 facebook sdk 将图像发布到我的 facebook 墙上的正确解决方案。在 stackOverflow 上,我找到了以下解决方案,但 AsyncFacebookRunner 和 mAsyncRunner.request 已被弃用,它们不起作用。

private Facebook facebook;
@SuppressWarnings("deprecation")
public void shareImg(View v) {

System.out.println("ciao");
Bitmap img = albero.getDrawingCache();
if (img != null) {
byte[] data = null;

Bitmap bi = img;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bi.compress(Bitmap.CompressFormat.JPEG, 100, baos);
data = baos.toByteArray();

Bundle params = new Bundle();
params.putString("method", "photos.upload");
params.putByteArray("picture", data);

AsyncFacebookRunner mAsyncRunner = new AsyncFacebookRunner(facebook);
mAsyncRunner.request("me/posts", params, "POST", new SampleUploadListener(), null);

}
}

有什么建议吗?

最佳答案

完整的解决方案:

Request.Callback uploadPhotoRequestCallback = new Request.Callback() {
@Override
public void onCompleted(Response response) {
if (response.getError() != null) {
//post error
} else{
String idRploadResponse = (String) response.getGraphObject().getProperty("id");
if (idRploadResponse!= null) {

String fbPhotoAddress = "https://www.facebook.com/photo.php?fbid=" +idRploadResponse;
} else {
//error
}

}
}
};


@SuppressWarnings("deprecation")
public void shareImg(View v) {
Bitmap img = albero.getDrawingCache(); //I get Btimap from View

if (img != null) {

Request request = Request.newUploadPhotoRequest(Session.getActiveSession(), img, uploadPhotoRequestCallback);
Bundle parameters = request.getParameters(); // <-- THIS IS IMPORTANT
parameters.putString("message", "My message");
// add more params here
request.setParameters(parameters);
request.executeAsync();
}
}

关于android - 如何使用 facebook sdk 将位图发布到 facebook?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20908219/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com