0

我正在尝试获取朋友列表:

  private void getFriends(){

    JSONObject json_data = null;

    try
    {
        JSONObject response = Util.parseJson(facebook.request("me/friends")); // Get a friend information from facebook
        JSONArray jArray = response.getJSONArray("data");

        json_data = jArray.getJSONObject(0);
        String name = json_data.getString("name");
        Log.e("lovehate", name);


    }
    catch (MalformedURLException e)
    {
        e.printStackTrace();
    }
    catch (JSONException e)
    {
        e.printStackTrace();
    }
    catch (IOException e)
    {
        e.printStackTrace();
    }
    catch (FacebookError e)
    {
        e.printStackTrace();
    }

}

此代码遇到 IOEXception -

 08-27 18:00:29.630: D/Facebook-Util(5068): GET URL: https://graph.facebook.com/me/friends?access_token=[REMOVED_ACCESS_TOKEN]&format=json
08-27 18:00:32.390: W/System.err(5068): java.net.UnknownHostException: graph.facebook.com
08-27 18:00:32.400: W/System.err(5068):     at java.net.InetAddress.lookupHostByName(InetAddress.java:500)
08-27 18:00:32.400: W/System.err(5068):     at java.net.InetAddress.getAllByNameImpl(InetAddress.java:297)
08-27 18:00:32.400: W/System.err(5068):     at java.net.InetAddress.getAllByName(InetAddress.java:256)
08-27 18:00:32.400: W/System.err(5068):     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>(HttpConnection.java:69)

我的权限列表如下所示:

 facebook.authorize(this, new String[] {}, new DialogListener() {
                    @Override
                    public void onComplete(Bundle values) {
                          Log.e("tag","new auth stored");

                        SharedPreferences.Editor editor = mPrefs.edit();
                        editor.putString("access_token", facebook.getAccessToken());
                        editor.putLong("access_expires", facebook.getAccessExpires());
                        editor.commit();
                    }
4

2 回答 2

1

堆栈跟踪显示您的设备/模拟器无法连接到我们的端点。确保您可以访问 Internet,并且您的应用程序具有访问 Internet 的权限。

<uses-permission android:name="android.permission.INTERNET" />

于 2012-08-27T20:38:12.210 回答
-1

您的权限字符串数组为空,我不知道这是否是您的问题。我正在使用电子邮件、publish_stream 和 user_photos。另外,我使用此代码来获取朋友,这对我有用,您可以尝试一下。

    Bundle params = new Bundle();
            access_token = fb.getAccessToken();

            try {
                params.putString("format", "json");
                params.putString("access_token", access_token);
                String url = "https://graph.facebook.com/me/friends";
                String response = Util.openUrl(url, "GET", params);
                JSONObject json = Util.parseJson(response);
                JSONArray jsonArray = json.optJSONArray("data");

                if(jsonArray != null) {
                    for(int i = 0; i < jsonArray.length(); i++) {
                        String tempName = jsonArray.getJSONObject(i).getString("name");
                        String tempId = jsonArray.getJSONObject(i).getString("id");
                        String location = jsonArray.getJSONObject(i).getString("location");
                        System.out.println(tempName + ", " + tempId + ", " + location);
                    }
                }

                //catch stuff
于 2012-08-27T18:42:18.817 回答