gpt4 book ai didi

android - 获取 facebook 相册和封面照片

转载 作者:行者123 更新时间:2023-11-29 01:38:06 27 4
gpt4 key购买 nike

在我的应用程序中,我允许用户从 Facebook 上传照片。所以首先我获取所有用户相册:

new Request(session, "/me/albums", null, HttpMethod.GET, new Request.Callback() {
public void onCompleted(Response response) {
}
};

然后我使用适配器在 GridView 中显示每个相册,所以在 getView 方法中我调用 /{album-id}/picture ,但我不知道如何解析响应。我必须如何处理 Response 对象才能在 ImageView 中显示图像?有没有更好的方法来做到这一点?

我是这样申请的

                Bundle params = new Bundle();
params.putString("type", "thumbnail");
String albumid = albums.get(position);
new Request(session, "/"+ albumid +"/picture",
params, HttpMethod.GET,
new Request.Callback() {
public void onCompleted(Response response) {

ViewHolder holder = new ViewHolder();
}
}
).executeAsync();

这就是我得到的:

{Response: responseCode: 200, graphObject: GraphObject{graphObjectClass=GraphObject, state={"FACEBOOK_NON_JSON_RESULT":"����\u0000\u0010JFIF\u0000\u0001\u0002\u0000\u0000\u0001\u0000\u0001\u0000\u0000��\u0000\u0004*\u0000��\u0002\u001cICC_PROFILE\u0000\u0001\u0001\u0000\u0000\u0002"}}, error: null, isFromCache:false}

最佳答案

要获取 facebook 相册,请使用此

    Bundle params = new Bundle();
//params.putString("fields", "photos.limit(10),name,count");
params.putString("access_token", facebook.getAccessToken());
params.putString("limit", "1000");
//me = new JSONObject(facebook.request("me/albums",params ,"GET"));
System.out.println("params are: "+params);

if(facebook.getAccessToken()!= null)
{
me = new JSONObject(facebook.request("me/albums",params ,"GET"));
}

fbAlbumList.clear();
try {
//JSONObject jsonObject = new JSONObject(respons);
JSONArray jsonArray = me.getJSONArray("data");
for (int i = 0; i < jsonArray.length(); i++) {
FbAlbumBean bean = new FbAlbumBean();
bean.albumId = jsonArray.getJSONObject(i).getString("id");
bean.albumName = jsonArray.getJSONObject(i).getString("name");
if(i!=0)
{
bean.coverId = jsonArray.getJSONObject(i).getString("cover_photo");
bean.albumCount = jsonArray.getJSONObject(i).getInt("count")+"";
}
fbAlbumList.add(bean);
}

通过 albumId 获取照片

public void fetchPhotosFromAlbumId(final String album_id, Activity activity){

//new FetchAsyncTask().execute(album_id);

progressDialog1 = ProgressDialog.show(activity,"", "Please wait...");
System.out.println("progress dialog: "+progressDialog1);

new Thread(new Runnable() {
@Override
public void run() {
Looper.prepare();

JSONObject me;
try {
fbPhotosList.clear();
String offset1 = String.valueOf(offset+100);
Bundle params = new Bundle();
params.putString("limit", "1000");
params.putString("access_token", facebook.getAccessToken());

//me = new JSONObject(facebook.request("me/albums",params ,"GET"));
me = new JSONObject(facebook.request(album_id+"/photos",params ,"GET"));
System.out.println(me);

JSONArray jsonArray = me.getJSONArray("data");
for (int i = 0; i < jsonArray.length(); i++) {
CameraRollBean bean = new CameraRollBean();
bean.filePath = jsonArray.getJSONObject(i).getString("source");
bean.showRight_IB = false;
fbPhotosList.add(bean);
}
System.out.println("size of fb album: "+fbAlbumList.size());
FbAlbumsScreen.fromFbScreen = true;
Intent intent = new Intent(_activity, CameraRollScreen.class);
intent.putExtra("album_id", album_id);
_activity.startActivity(intent);


if(progressDialog1!=null)
progressDialog1.cancel();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}catch (Exception e){
e.printStackTrace();
}
}
}).start();

progressDialog1.show();
}

关于android - 获取 facebook 相册和封面照片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26575024/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com