2

私の英語は完璧ではありませんが、学びたいので、理解していただければ幸いです。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);

しかし、アップロードした画像をプロフィール写真として設定する方法がわかりません。多分これにいくつかのコードを追加しますか?私が尋ねることは、php用のfacebook sdkを使用して可能であることを知っています。また、これを行うAppleアプリも見ました。それなら、アンドロイドでできると思います。誰かが私が探しているものについての情報を持っていますか? 前もって感謝します。

4

1 に答える 1

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を取得してから、ユーザーが写真を自分のプロフィール写真として設定することを確認できるWebページにリダイレクトします。

于 2012-09-14T15:51:43.357 に答える