2012-09-03 204 views
2

我的英语不是很完美,但我想学习,所以我希望你能理解我。我想知道如何更改Facebook的个人资料图片使用facebook android sdk。 IM能够从我的应用程序上传图片到任何专辑,包括“我的照片”(我用下面的代码:)如何使用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中完成。有人有关于我在寻找什么的信息?提前致谢。

+1

_“我想知道如何更改Facebook个人资料照片”_ - 您_无法通过API _at all_更改个人资料照片 - 用户必须手动执行此操作。 – CBroe

+0

@Croro我的朋友我想要做的是创建一个应用程序,用户可以从他的手机画廊中选择一张照片,选择他/她想要上传它的相册,如果是配置文件图片专辑,问他/他是否想要将照片设置为他/她的个人资料照片。我的朋友,这是可以的。正如我所说,我知道一个应用程序可以做到这一点,而不会违反任何Facebook政策。此外,我已经看到了完美的PHP代码。这就是我问这个问题的原因。 – illapu

+0

那么,这是什么“PHP代码”这样做呢?如果您可以显示_working_ PHP示例,那么也许我们可以弄清楚此功能的正确API调用是什么。 – CBroe

回答

4

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

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

相关问题