Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取变量";图片“;使用gson从json GraphRequest Facebook SDK_Java_Android_Json_Facebook_Android Studio - Fatal编程技术网

Java 获取变量";图片“;使用gson从json GraphRequest Facebook SDK

Java 获取变量";图片“;使用gson从json GraphRequest Facebook SDK,java,android,json,facebook,android-studio,Java,Android,Json,Facebook,Android Studio,我已经登录并处理了accesstoken,还从GraphResponse FacebookSDK获得了响应。 我想要实现的是从json响应中获取数据“图片” 我怎么可能用gson解析它呢?或者,我可以创建什么样的Pojo类来获得数据结果 下面是我对GraphResponse的Json响应 { "albums": { "data": [ { "photos": { "data": [ {

我已经登录并处理了accesstoken,还从GraphResponse FacebookSDK获得了响应。 我想要实现的是从json响应中获取数据“图片”

我怎么可能用gson解析它呢?或者,我可以创建什么样的Pojo类来获得数据结果

下面是我对GraphResponse的Json响应

{
  "albums": {
    "data": [
      {
        "photos": {
          "data": [
            {
              "picture": "https://scontent.xx.fbcdn.net/"
            },
            {
              "picture": "https://scontent.xx.fbcdn.net/"
            },
            {
              "picture": "https://scontent.xx.fbcdn.net/",
              "id": "1020051059"
            }
          ],
          "paging": {
            "cursors": {
              "before": "MTAyMODNzAzNDUZD",
              "after": "MTAy1M5ODkwNTkZD"
            }
          }
        },
        "id": "10200419072"
      },
      {
        "photos": {
          "data": [
            {
              "picture": "https://scontent.xx.fbcdn.net/",
              "id": "10248202764"
            }
          ],
          "paging": {
            "cursors": {
              "before": "MTAyMDNzQUyMDI3NjQZD",
              "after": "AyMDU5NzjUyMDI3NjQZD"
            }
          }
        },
        "id": "1020597122762"
      }
    ],
    "paging": {
      "cursors": {
        "before": "MTAyMDA1QE1MDkwNzIZD",
        "after": "MTAyMDNzQ4UxMjI3NjIZD"
      },
      "next": "https://scontent.xx.net/"
    }
  },
  "id": "102088470922"
}
这是我的主要活动

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        FacebookSdk.sdkInitialize(getApplicationContext());
        callbackManager = CallbackManager.Factory.create();
        setContentView(R.layout.activity_main);
        info = (TextView) findViewById(R.id.info);
        loginButton = (LoginButton) findViewById(R.id.login_button);

        initLogin();
    }

    private void initLogin(){
        LoginManager.getInstance().registerCallback(callbackManager,
                new FacebookCallback<LoginResult>() {
                    @Override
                    public void onSuccess(LoginResult loginResult) {
                        // App code

                        USER_TOKEN = loginResult.getAccessToken().getToken();
                        info.setText("Access Token " + USER_TOKEN);
                        initGraph();
                    }

                    @Override
                    public void onCancel() {
                        // App code
                        info.setText("Login attempt canceled.");
                    }

                    @Override
                    public void onError(FacebookException exception) {
                        // App code
                        info.setText("Login attempt failed.");
                    }
                });
    }

    private void initGraph() {
        GraphRequest request = GraphRequest.newMeRequest(
                AccessToken.getCurrentAccessToken(),
                new GraphRequest.GraphJSONObjectCallback() {
                    @Override
                    public void onCompleted(JSONObject object, GraphResponse response) {
                        // Insert your code here
                        JSONObject jsonObject = response.getJSONObject();

                        try {
                            Log.i(TAG,jsonObject.getString("albums"));
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                        Log.i(TAG, "-------------------------");
                    }
                });

        Bundle parameters = new Bundle();
        parameters.putString("fields", "albums.limit(2){photos{picture}}");
        request.setParameters(parameters);
        request.executeAsync();

    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        callbackManager.onActivityResult(requestCode, resultCode, data);
    }
@覆盖
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
sdkinInitialize(getApplicationContext());
callbackManager=callbackManager.Factory.create();
setContentView(R.layout.activity_main);
info=(TextView)findViewById(R.id.info);
loginButton=(loginButton)findviewbyd(R.id.login_按钮);
initLogin();
}
私有void initLogin(){
LoginManager.getInstance().registerCallback(callbackManager,
新建FacebookCallback(){
@凌驾
成功时公共无效(LoginResult LoginResult){
//应用程序代码
USER_TOKEN=loginResult.getAccessToken().getToken();
info.setText(“访问令牌”+用户令牌);
initGraph();
}
@凌驾
公开作废{
//应用程序代码
info.setText(“登录尝试已取消”);
}
@凌驾
public void onError(facebook异常){
//应用程序代码
info.setText(“登录尝试失败”);
}
});
}
私有void initGraph(){
GraphRequest请求=GraphRequest.newmereRequest(
AccessToken.getCurrentAccessToken(),
新建GraphRequest.GraphJSONObjectCallback(){
@凌驾
未完成公共无效(JSONObject对象,GraphResponse响应){
//在这里插入您的代码
JSONObject JSONObject=response.getJSONObject();
试一试{
Log.i(标签,jsonObject.getString(“albums”);
}捕获(JSONException e){
e、 printStackTrace();
}
Log.i(标记“---------------------------”);
}
});
Bundle参数=新Bundle();
parameters.putString(“fields”、“albums.limit(2){photos{picture}”);
请求。设置参数(参数);
request.executeAsync();
}
@凌驾
受保护的void onActivityResult(int请求代码、int结果代码、意图数据){
super.onActivityResult(请求代码、结果代码、数据);
callbackManager.onActivityResult(请求代码、结果代码、数据);
}
正如我所说,我已经成功地得到了响应,但我正在努力找出如何解析它(如果可能的话,使用gson)。或者,是否可以使用Http客户端(如“改造或OKHTTP”)捕获“GraphResponse响应”


到目前为止,我已经能够通过对Api调用电影数据库进行改造来实现GET方法,比如基于TMDB的方法,我成功地获得了相册封面以及相册名称中的全部照片。。请访问我的

为您的graph api响应创建您的pojo类。