【问题标题】:Call to AsyncFacebookRunner request() gives error调用 AsyncFacebookRunner request() 会出错
【发布时间】:2011-08-07 01:46:29
【问题描述】:

我想获取朋友公开相册的照片信息。如果我使用:

AsyncFacebookRunnerObj.request(currentAlbumID +"/photos", new myRequestListner, refString);

我得到了照片的所有信息,但我只想要以下字段 id、name、source 和 created_time,但是当我将查询修改为

AsyncFacebookRunnerObj.request(currentAlbumID +"/photos?fields=id,name,source,created_time&", new myRequestListner, refString);

它给了我以下错误:

Unknown fields: created_time?access_token=206284639416574|bb1b1eb05fb1dcde78cb98ff.3-100002550378811|GLcB2DC3Tyc5VMWukaB9nPW6QF0

在第一种情况下,此令牌也会被附加,但不会引发错误,但在第二种情况下,Facebook-sdk 会出错。

我将不胜感激!

谢谢。

【问题讨论】:

  • 我在浏览器中的 Facebook 上进行了相同的查询,但如果我输入 ....&?它返回给我空的 JSONObject。那么问题是真的吗?附加在 access_token 前面的标记。请求功能会自动附加它。有谁知道如何删除这个?查询中的符号?
  • 是的,您必须编辑请求方法并对其进行更改,这样它就不会 - 就像我在下面所说的那样。
  • @Berdon。谢谢。我得到了它。我更改了 Utils 中的 openUrl。它具有完整的字符串 url。因为当您请求字段时,您使用“=”,否则没有“=”符号,所以我搜索了它然后更改了?符号到第 146 行。

标签: android facebook facebook-graph-api


【解决方案1】:

AsyncFacebookRunnerObj 是不是你自己创造的?如果是,您需要更改附加访问令牌的方式以检查前面的 GET 参数,如果存在,请使用“&”而不是“?”。如果不是,则无论如何您都必须修改源代码...

【讨论】:

  • 感谢您的回复。实际上它是 Facebook SDK 的默认 AsyncFacebookRunner 类的一个对象。我不是一个经验丰富的开发人员,您能告诉我如何以及在哪里进行此更改,因为?在每种情况下,标记都会附加到令牌上,如果我们查看 Facebook Graph API 页面,如果我们调用 ..../me/friends 或任何 Graph API 对象,如朋友、照片、相册等?附加到查询后跟令牌,但如果我们添加 ..?fields=... 那么只有 & 后跟令牌。在我的情况下?无论如何都会附加。如果我修改它会影响其他查询吗?
  • 你指的是Facebook.java的以下请求方法[code](public String request(String graphPath, Bundle params, String httpMethod) throws FileNotFoundException, MalformedURLException, IOException { params.putString("格式", "json"); if (isSessionValid()) { params.putString(TOKEN, getAccessToken()); } String url = (graphPath != null) ? GRAPH_BASE_URL + graphPath : RESTSERVER_URL; return Util.openUrl(url, httpMethod, 参数); })
猜你喜欢
  • 1970-01-01
  • 2023-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-01
  • 2021-08-29
相关资源
最近更新 更多