gpt4 book ai didi

java - 从 Android 更新 Facebook

转载 作者:行者123 更新时间:2023-11-30 04:32:11 26 4
gpt4 key购买 nike

我运行了以下脚本并且运行良好。我想知道的是。如果我不必实现它,为什么 facebook 会给我一个 key ,因为我没有在下面这样做。

    Facebook facebook = new Facebook("APP_ID"); // Application ID of your app at facebook
boolean isLoggedIn = false;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);


//Implementing SSO
facebook.authorize(this, new String[]{"publish_stream"}, new DialogListener(){

@Override
public void onComplete(Bundle values) {
//control comes here if the login was successful
// Facebook.TOKEN is the key by which the value of access token is stored in the Bundle called 'values'
Log.d("COMPLETE","AUTH COMPLETE. VALUES: "+values.size());
Log.d("AUTH TOKEN","== "+values.getString(Facebook.TOKEN));
updateStatus(values.getString(Facebook.TOKEN));
}

@Override
public void onFacebookError(FacebookError e) {
Log.d("FACEBOOK ERROR","FB ERROR. MSG: "+e.getMessage()+", CAUSE: "+e.getCause());
}

@Override
public void onError(DialogError e) {
Log.e("ERROR","AUTH ERROR. MSG: "+e.getMessage()+", CAUSE: "+e.getCause());
}

@Override
public void onCancel() {
Log.d("CANCELLED","AUTH CANCELLED");
}
});
}

//updating Status
public void updateStatus(String accessToken){
try {
Bundle bundle = new Bundle();
bundle.putString("message", "test update"); //'message' tells facebook that you're updating your status
bundle.putString(Facebook.TOKEN,accessToken);
//tells facebook that you're performing this action on the authenticated users wall, thus
// it becomes an update. POST tells that the method being used is POST
String response = facebook.request("me/feed",bundle,"POST");
Log.d("UPDATE RESPONSE",""+response);
} catch (MalformedURLException e) {
Log.e("MALFORMED URL",""+e.getMessage());
} catch (IOException e) {
Log.e("IOEX",""+e.getMessage());
}
}

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

Log.d("onActivityResult","onActivityResult");
facebook.authorizeCallback(requestCode, resultCode, data);
}

最佳答案

最可能的原因是您已经登录此应用程序,或者之前已使用 Facebook 应用程序登录,因此 Facebook 已为您分配了一个访问 token - 在应用程序明确签署之前该 token 一直有效关闭,或者用户禁用应用程序访问(在 Facebook 服务器端用户配置文件中)。

因此,当您进行授权时,底层 Facebook SDK 只需检索访问 token ,您无需登录。

您可以通过为您的用户转到 Facebook 并进行帐户设置(右上角的下拉菜单),然后进行应用程序(在左侧)并禁用您的应用程序的访问来禁用访问 token 。此时,当您下次运行您的应用时,用户将必须登录 Facebook 授权您的应用。

关于java - 从 Android 更新 Facebook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7507626/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com