2012-09-03 254 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,然後重定向到一個網頁,用戶可以確認此照片爲他/她的個人資料圖片。

相關問題