android - 如何使用 facebook android sdk 更改 facebook 个人资料图片?

标签 android facebook sdk image user-profile

我的英语不是很完美,但我想学习,所以我希望你能理解我。我想知道如何使用 facebook android sdk 更改 facebook 个人资料图片。我能够将图片从我的应用程序上传到任何相册,包括“个人资料图片”(我使用下一个代码:)

params=new Bundle();
params.putByteArray("photo", photo);
params.putString("caption", description);
mAsyncRunner.request(idAlbum+"/photos", params,"POST",new RequestListener() {

                    @Override
                    public void onMalformedURLException(MalformedURLException e, Object state) {}
                    @Override
                    public void onIOException(IOException e,Object state) {}
                    @Override
                    public void onFileNotFoundException(FileNotFoundException e, Object state){}
                    @Override
                    public void onFacebookError(FacebookError e,Object state) {}
                    @Override
                    public void onComplete(String response, Object state) {
                        mHandler.post(new Runnable() {
                            @Override
                            public void run() {
                                Toast.makeText(getApplicationContext(),"Success", Toast.LENGTH_LONG).show();
                            }
                        });
                    }
                }, null);

但我不知道如何将上传的图片设置为个人资料图片。也许为此添加一些代码?我知道我问的是可以使用 facebook sdk for php 。另外,我见过一个苹果应用程序也可以做到这一点。然后,我想我可以在android中做到这一点。有人有关于我在寻找什么的信息吗?提前致谢。

最佳答案

好的,我找到了方法。这是代码:

params=new Bundle();
    try {
        params.putByteArray("photo", photo);
    } catch (IOException e) {
        e.printStackTrace();
    }
    params.putString("caption", description);

mAsyncRunner.request(idAlbum+"/photos", params,"POST",
                        new RequestListener() {
                    @Override
                    public void onMalformedURLException(MalformedURLException
                            e, Object state) {}
                    @Override
                    public void onIOException(IOException e,Object state) {}
                    @Override
                    public void onFileNotFoundException(
                            FileNotFoundException e, Object state){}
                    @Override
                    public void onFacebookError(FacebookError e,Object state) {}

                    @Override
                    public void onComplete(final String response, Object state) {
                        mHandler.post(new Runnable() {
                            @Override
                            public void run() {
                                try {
                                    JSONObject json=new JSONObject(response);
                                    JSONObject obj=new JSONObject(
                                            facebook.request("me"));
                                    final String photoId=json.getString("id");
                                    String userId=obj.getString("id");

                                    String url="https://m.facebook.com/photo." +
                                            "php?fbid="+photoId+"&id="+userId+
                                            "&prof&__user="+userId;
                                    Intent mIntent=new Intent(Intent.ACTION_VIEW,
                                    Uri.parse(url));
                                    startActivity(mIntent);
                                } catch (JSONException e) {
                                    e.printStackTrace();
                                } catch (MalformedURLException e) {
                                    e.printStackTrace();
                                } catch (IOException e) {
                                    e.printStackTrace();
                                }

                            }
                        });
                    }
                }, null);

将照片发布到特定相册,使用 JSONObject 获取 photoID,然后重定向到用户可以在其中确认将照片设置为其个人资料图片的网页。

关于android - 如何使用 facebook android sdk 更改 facebook 个人资料图片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12254130/

相关文章:

node.js - 使用 facebook 策略使用 Passport 进行 NodeJS 身份验证

android - 如何在 Flutter 应用中添加桌面版网站?

java - 发现彩信大小限制?

android - 屏幕关闭时检测手机移动

c# - 如何使用 PutObjectAsync 通过 dotnet SDK 将 base64 pdf 上传到 S3

iOS 用户界面定制工具包?

android - 为具有大量开源依赖项的 aar 提供 jar 支持

android - 检测网页是否在 iOS/Android 上的 native Facebook 应用程序中加载

android - Session.openActiveSession 仅在 Facebook Android SDK 中调用 OPENING

facebook - 我怎样才能像 Sounds 应用程序那样邀请 Facebook 好友?