作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
您好,我需要从 Facebook 个人资料中检索用户名和通知,这是我的 Facebook 连接器代码:
import com.FeedPass.SessionEvents.AuthListener;
import com.FeedPass.SessionEvents.LogoutListener;
public class FacebookConnector {
private Facebook facebook = null;
private Context context;
private String[] permissions;
private Handler mHandler;
private Activity activity;
private SessionListener mSessionListener = new SessionListener();
private String _accessToken;
public FacebookConnector(String appId,Activity activity,Context context,String[] permissions){
this.facebook = new Facebook(appId);
SessionStore.restore(facebook, context);
SessionEvents.addAuthListener(mSessionListener);
SessionEvents.addLogoutListener(mSessionListener);
this.context=context;
this.permissions=permissions;
this.mHandler = new Handler();
this.activity=activity;
}
public void login() {
if (!facebook.isSessionValid()) {
facebook.authorize(this.activity, this.permissions,new LoginDialogListener());
}
}
public void logout() {
SessionEvents.onLogoutBegin();
AsyncFacebookRunner asyncRunner = new AsyncFacebookRunner(this.facebook);
asyncRunner.logout(this.context, new LogoutRequestListener());
}
public void postMessageOnWall(String msg) {
if (facebook.isSessionValid()) {
Bundle parameters = new Bundle();
parameters.putString("message", msg);
try {
String response = facebook.request("me/feed", parameters,"POST");
System.out.println(response);
} catch (IOException e) {
e.printStackTrace();
}
} else {
login();
}
}
public String getNotifications(){
String result = null;
if(facebook.isSessionValid()){
Bundle bundle = new Bundle();
bundle.putString(Facebook.TOKEN, _accessToken);
try{
result = facebook.request("me/notifications", bundle, "GET");
}
catch(IOException e){
e.printStackTrace();
}
}
else{
login();
}
return result;
}
private final class LoginDialogListener implements DialogListener {
public void onComplete(Bundle values) {
SessionEvents.onLoginSuccess();
}
public void onFacebookError(FacebookError error) {
SessionEvents.onLoginError(error.getMessage());
}
public void onError(DialogError error) {
SessionEvents.onLoginError(error.getMessage());
}
public void onCancel() {
SessionEvents.onLoginError("Action Canceled");
}
}
public class LogoutRequestListener extends BaseRequestListener {
public void onComplete(String response, final Object state) {
// callback should be run in the original thread,
// not the background thread
mHandler.post(new Runnable() {
public void run() {
SessionEvents.onLogoutFinish();
}
});
}
}
private class SessionListener implements AuthListener, LogoutListener {
public void onAuthSucceed() {
SessionStore.save(facebook, context);
}
public void onAuthFail(String error) {
}
public void onLogoutBegin() {
}
public void onLogoutFinish() {
SessionStore.clear(context);
}
}
public Facebook getFacebook() {
return this.facebook;
}
}
如您所见,我有一种方法来检索用户通知,但我不确定它是否有效,有人知道如何以简单的方式做到这一点吗?
最佳答案
您可以使用以下代码来检索 facebook 用户的名称:
public static String getName() {
String response;
String name = "";
try {
response = ParseFacebookUtils.getFacebook().request("me");
JSONObject json = Util.parseJson(response);
name = json.getString("first_name");
}
catch (MalformedURLException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
catch (FacebookError e) {
e.printStackTrace();
}
catch (JSONException e) {
e.printStackTrace();
}
return name;
}
关于java - 如何在 Android 中检索 Facebook 用户名和通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11700991/
我是一名优秀的程序员,十分优秀!