如何使用Facebook Android SDK(Graph API)进行签到

6
我希望使用 Facebook Android SDK(Graph API)进行签到。
我正在尝试以下操作:
String checkinData = "{"+
                        "\"message\"=\"Test\"" +
                        "\"place\"=\"000000000\"" 
                        +   "\"coordinates\"={\"latitude\":\"000000000\", \"longitude\":\"-000000000\"}\"" + "}";

                Bundle params  = new Bundle();
                params.putString("checkin", checkinData);
                String pageData = "";

                try {
                    pageData = facebook.request("/checkins", params, "POST");
                } catch (Exception e) {

                    e.printStackTrace();
                }

                System.out.println("Data :  " + pageData);

但是它给我报了这个错误。
{"error":{"message":"batch parameter must be a JSON array","type":"GraphBatchException"}}

这是使用Facebook Graph API签到的正确方式吗?

2个回答

13

检查代码的简单示例。请尝试:

Bundle params = new Bundle();
params.putString("access_token", "YOUR ACCESS TOKEN");
params.putString("place", "203682879660695");  // YOUR PLACE ID
params.putString("message","I m here in this place");
JSONObject coordinates = new JSONObject();
coordinates.put("latitude", "YOUR LATITUDE");
coordinates.put("longitude", "YOUR LONGITUDE");
params.putString("coordinates",coordinates.toString());
params.putString("tags", "xxxx");//where xx indicates the User Id
String response = faceBook.request("me/checkins", params, "POST");
Log.d("Response",response);

谢谢伙计!!你救了我的一天。 - Adil Bhatty
2
@Venky 如何从纬度和经度获取地点ID,是否可以获取精确的位置place_id还是只能获取附近的? - moDev

1

可能是checkinData的格式问题。请尝试:

String checkinData = "{"+
                    "\"message\":\"Test\"," +
                    "\"place\":\"000000000\"," 
                    +   "\"coordinates\":{\"latitude\":\"000000000\", \"longitude\":\"-000000000\"}\"" + "}";

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接