0

我正在使用此代码。实际上我想做的是,在我的墙上我得到一张checkins我在这里的地图。

 private void getFb()
  {
    fb = new Facebook(Constants.facebookKey);
    String[] arrayOfString = new String[2];
      arrayOfString[0] = "publish_stream";
      arrayOfString[1] = "me/checkins";
      fb.authorize(this, arrayOfString, new FBDialogListener());
  }

  @Override
  public void onActivityResult(int requestCode, int resultCode, Intent data) 
  {
      super.onActivityResult(requestCode, resultCode, data);
      fb.authorizeCallback(requestCode, resultCode, data);
  }


  private class FBDialogListener implements Facebook.DialogListener
  {

        public void onComplete(Bundle values)
        {

             Bundle params = new Bundle();
             params.putString("place", "MyPlaceId");  // YOUR PLACE ID
             params.putString("Message","I m here in this place");

             JSONObject coordinates = new JSONObject();
             try {
                coordinates.put("latitude",Constants.latitude); // The place Coordinates
                 coordinates.put("longitude", Constants.longitude);
            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
             params.putString("coordinates",coordinates.toString());

             JSONArray frnd_data=new JSONArray();
             fb.dialog(MainMenu.this,"me/checkins", params, new PublishDialogListener());


        }

        public void onFacebookError(FacebookError e) {

        }

        public void onError(DialogError e) {    

        }

        public void onCancel() {

        }
  }

  private class PublishDialogListener implements Facebook.DialogListener
  {

        public void onComplete(Bundle values) {

        }

        public void onFacebookError(FacebookError e) {

        }

        public void onError(DialogError e) {


        }

        public void onCancel() {
        }

  }

这只是给了我错误

The page you have request is not found.

怎么了?最好的祝福

4

1 回答 1

1
  1. 没有me/checkins权限,所以这是错误的:

    arrayOfString[1] = "me/checkins";
    

    相反,您需要publish_checkins权限。所以改成:

    arrayOfString[1] = "publish_checkins";
    
  2. Facebook.dialog()方法用于打开预定义的对话框,例如发布状态授权应用程序对话框。相反,您希望直接向 Graph API 发出自定义请求。这可以使用如下Facebook.request()方法完成:

    String jsonResponse = fb.request("me/checkins", params, "POST");
    

旁注:Facebook SDK 还提供了一种方便的异步提交请求的方法。

于 2012-09-27T09:25:57.647 回答