-1

这是我在这里的第一篇文章,所以请放轻松:)

我正在将 Facebook SDK 集成到 Android 应用程序中。用户登录后,我想向他展示应用程序在 facebook 中的最后一篇文章,所以我很想用(作为图形对象)来获取它:

Bundle params = new Bundle();
params.putInt("limit", 1);

Request request = new Request(session, inRequestId + "/posts/?limit=1&access_token=" +
session.getAccessToken().toString(), params, HttpMethod.GET, new Request.Callback() {
    @Override
    public void onCompleted(Response response) {
        if(response != null){
            if(response.getError() != null)
                Toast.makeText(getActivity(), "Error retrieveng last post", Toast.LENGTH_SHORT).show();
        else {
                updateFacebookView( response.getGraphObject().getInnerJSONObject() );
        }
    }
    }
});
request.executeAsync();

这行得通,我认为很好,但是如果我想在没有graphPath的limit = 1参数(inRequestId +“/posts/?access_token =”+ session.getAccessToken().toString())的情况下实现它,它没有限制,如果我不把捆绑参数“限制”,(作为字符串或作为 int 测试),它会给我这个错误:

09-30 17:51:47.094: E/caca(19703): {HttpStatus: 400, errorCode: 190, errorType: 
OAuthException, errorMessage: Malformed access token
CAAT76i2gxTgBAKyLzc8SI6y7V1pGJ0fmbLWCtuKdhHIEZAQBA0jYx4YqZB8IgRDJMUlw1XrvZCLJ8kxKdZCRG3LNbrVL8fB34ZBlyvlqadT192MCWMkst1lMSdFwtRVPWiSNfBfi8Gq2RHZCWskrBVTjAwPDKyDMGLSU8sPnXfe0r2tsZBdZCXLCOJGQtE76sJkr7n8SdOU4j1KopkvT0Mux7QBGf7ZBXtCRqDnsZAZCxSNHAZDZD?access_token=CAAT76i2gxTgBAKyLzc8SI6y7V1pGJ0fmbLWCtuKdhHIEZAQBA0jYx4YqZB8IgRDJMUlw1XrvZCLJ8kxKdZCRG3LNbrVL8fB34ZBlyvlqadT192MCWMkst1lMSdFwtRVPWiSNfBfi8Gq2RHZCWskrBVTjAwPDKyDMGLSU8sPnXfe0r2tsZBdZCXLCOJGQtE76sJkr7n8SdOU4j1KopkvT0Mux7QBGf7ZBXtCRqDnsZAZCxSNHAZDZD}

我没有正确使用它还是一个错误?提前致谢

4

1 回答 1

0

构造函数的第二个参数是请求的“路径”,但您还将请求参数放入路径中,这与 Request 类可能尝试代表您放置的其他参数混淆。有几件事要做:

  1. 不要将请求参数放在路径参数中,将它们粘贴到“params”包中。
  2. 不要放置访问令牌(Request 类会自动从会话对象中获取它)。

尝试这样的事情:

Bundle params = new Bundle();
params.putInt("limit", 1);

Request request = new Request(session, inRequestId + "/posts", params, HttpMethod.GET, new Request.Callback() {
    ...
});
request.executeAsync();
于 2013-09-30T22:30:13.753 回答