【问题标题】:Fetch facebook user Data获取 facebook 用户数据
【发布时间】:2011-07-21 04:17:15
【问题描述】:

大家好 我可以将用户登录到其 Facebook 帐户并在他的个人资料上发布内容。 但我无法做的是获取 facebook 用户信息。 我不知道如果由 facebook 为会话提供的访问令牌在哪里。 我正在使用 fbConnect.jar 并将其添加到我的 lib 文件夹和构建路径中 以下是我正在使用的代码:-

private Facebook facebookClient;
String information;
Button fb;
//** Called when the activity is first created. *//*
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    fb = (Button)findViewById(R.id.fb);
    fb.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
        whenFbPressed();

        }
    });



}


@Override
public void onCancel() {
    // TODO Auto-generated method stub

}

@Override
public void onComplete(Bundle values) {
    // TODO Auto-generated method stub

    if (values.isEmpty()) {
        return;
    }

    if (!values.containsKey("post_id")) {
        try {
            Bundle parameters = new Bundle();
            parameters
                    .putString("message", "is Listening to  " );// the

              parameters.putString("attachment",
              "{\"name\":\"My Test Image\"," + "\"href\":\"" +
              "http://www.google.com" + "\"," +
              "\"media\":[{\"type\":\"image\",\"src\":\"" +
              "http://www.google.com/logos/mucha10-hp.jpg" +
              "\",\"href\":\"" + "http://www.google.com" + "\"}]" + "}");

            parameters.putString("attachment", "{\"name\":\"" + "Abhishek"
                    + "\"," + "\"href\":\"" + "www.google.com" + "\"}]" + "}");

            facebookClient.dialog(this, "stream.publish", parameters, this);
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }

}

@Override
public void onError(DialogError e) {
    // TODO Auto-generated method stub
    System.out.println("Error: " + e.getMessage());
}

@Override
public void onFacebookError(FacebookError e) {
    // TODO Auto-generated method stub
    System.out.println("Error: " + e.getMessage());

}

public void onClick(View v) {
    if (v == fb) {
        facebookClient = new Facebook("App_ID");
        // facebookClient = new Facebook("App_ID");
        // replace APP_API_ID with your own
        facebookClient.authorize(this, new String[] { "publish_stream",
                "read_stream", "offline_access" }, this);
    }
}

public void whenFbPressed(){
    facebookClient = new Facebook("App_ID");
    // facebookClient = new Facebook("App_ID");
    // replace APP_API_ID with your own
    facebookClient.authorize(this, new String[] { "publish_stream",
            "read_stream", "offline_access","email" }, this);

}

【问题讨论】:

    标签: java android facebook fbconnect userinfo


    【解决方案1】:
    /* this is user defined method  to fetch current user firstnam and last name */
    
    public void getUser(){
    
        try{
            JSONObject json = Util.parseJson( mFacebook.request("me"));
            String facebookID = json.getString("id");
            String firstName = json.getString("first_name");
            String lastName = json.getString("last_name");
            mFirstName=firstName;
            mLastName=lastName;
            mText.setText("You are logged in : "+mFirstName+"."+mLastName);
            System.out.println("Firstname>>"+firstName+" LastName>>"+lastName);
        }catch (Exception e) {
            // TODO: handle exception
        }catch(FacebookError fbe){
    
        }
    }
    

    【讨论】:

      【解决方案2】:

      我明白了。

      当用户注册应用程序并允许给定权限时,Facebook 会发送访问令牌。

      所以在我的onComplete() 方法中,我添加了这段代码:

      if (values.isEmpty()) {
           return;
      }
      if (!values.containsKey("post_id")) {
           try {
                Log.d("++++++++++++", facebookClient.getAccessToken());
                Log.d("++++++++++++", facebookClient.request("me"));
           }
      }
      

      在我的日志中它给了我数据。

      【讨论】:

        猜你喜欢
        • 2011-07-16
        • 2023-03-19
        • 1970-01-01
        • 1970-01-01
        • 2018-12-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多