【问题标题】:how to change the facebook profile picture using facebook android sdk?如何使用 facebook android sdk 更改 facebook 个人资料图片?
【发布时间】:2012-09-03 21:19:29
【问题描述】:

我的英语不是那么完美,但我想学习,所以我希望你能理解我。我想知道如何使用 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 是可能的。另外,我也看到了一个 Apple 应用程序也可以做到这一点。然后,我想我可以在android中做到这一点。有人知道我在找什么吗?提前致谢。

【问题讨论】:

  • “我想知道如何更改 facebook 个人资料图片” – 你不能通过 API 更改个人资料图片 - 用户必须手动执行此操作。
  • @CBroe 我的朋友我想做的是创建一个应用程序,用户可以在其中从他的手机图库中选择一张照片,选择他/她要上传的相册,如果是个人资料图片相册询问她/他,如果他想将照片设置为他/她的个人资料照片。我的朋友,是的,这是可能的。正如我所说,我知道有一款应用可以做到这一点而不会违反任何 Facebook 政策。此外,我已经看到 php 代码可以完美地做到这一点。这就是我问这个的原因。
  • 那么执行此操作的“PHP 代码”是什么?如果您可以展示一个工作 PHP 示例,那么也许我们可以弄清楚该功能的正确API 调用是什么。
  • 查看link
  • 所以,正如我已经说过的,它不能通过 Graph API 来完成,而您链接到的页面仅证实了这一点。该脚本通过将用户重定向到 Facebook 上的一个特殊 URL 来达到目的,这使给定的图片成为个人资料图片。所以,如果你想做同样的事情:如果这个解决方案仍然有效(我不知道,这篇文章是 2011 年的),你必须从你的应用程序中打开一个浏览器控件并将那个 URL 加载到那里。 (而且您必须希望用户也通过其设备上的网络浏览器登录 Facebook,否则肯定无法正常工作。)

标签: android facebook sdk image user-profile


【解决方案1】:

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

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,然后重定向到用户可以确认将照片设置为他/她的个人资料图片的网页。

【讨论】:

    猜你喜欢
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-03
    • 2016-11-14
    • 2013-11-20
    • 2017-09-30
    相关资源
    最近更新 更多