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

标签 android facebook-graph-api facebook-sharer facebook-sdk-3.0

我找不到使用 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/

相关文章:

android - 在 ScanContiniously 上显示 Toast

android - addAction 到 IntentFilter 以处理电话状态更改

java - 使用 Jersey 通过 Graph API 上传照片

facebook-sharer - Facebook sharer.php 端点不再被弃用吗?

facebook - 为什么 Facebook sharer.php 在多个 og :images have been scraped? 时不提供图像选择

php - 如何创建带有返回 URL 的 Facebook 共享链接?

android - 如何从 android 11 设备的共享存储中选择图像?

android - 带 AppCompatActivity 的 ActionBarDrawerToggle 和带 fragment 的工具栏后退按钮

iOS facebook 图形请求完成处理程序 block 未调用

node.js - 没有 Passport.js 或 everyauth 的 Expressjs FB 登录