facebook墙上的java帖子总是显示登录页面。。问题机器人
我正在使用youtube上的graph api,我遇到了一些麻烦
我可以把味精发到墙上,效果很好。问题是,每次都会显示登录页面,用户必须单击ok按钮才能发送。我想在不显示页面的情况下发送,它应该只在第一次显示。我使用 共享偏好,但如果我不把这种方法称为facebook。autorize显示登录页面,在尝试发送视频之前,它不起作用
我做错了吗?谢谢你的帮助
我的代码:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.facebook_lay);
init();
acessToken = loadAccessToken();
Log.i("teste","Acesstoken depois do load : " + acessToken);
if(acessToken == null || acessToken.equals("")){
login();
}else{
Log.i("teste","Session valid com token salva ? " + mFacebook.isSessionValid());
sendVideo();
}
}
private void init(){
mFacebook = new Facebook(APP_ID);
videoUrl = getIntent().getExtras().getString("videoUrl");
preferences = this.getSharedPreferences(APPLICATION_PREFERENCES,
Context.MODE_PRIVATE);
}
private void login(){
mFacebook.authorize(this, new String[] {"publish_stream","offline_access"},new AuthorizeListener());
}
public void postOnWall(String msg) {
Log.i("teste", "Testing graph API wall post");
try {
Bundle parameters = new Bundle();
parameters.putString("message", AUTO_MSG);
parameters.putString("link", msg);
mFacebook.request("me/feed", parameters,
"POST");
} catch(Exception e) {
e.printStackTrace();
}
}
private void storeToken(String token){
Log.i("teste","storeToken: " + token);
Editor editor = preferences.edit();
editor.putString(ACESS_TOKEN, token);
editor.commit();
}
private String loadAccessToken() {
String token = preferences.getString(ACESS_TOKEN, null);
if (token != null && !token.equals("") ) {
return token;
} else {
return null;
}
}
private void sendVideo(){
dialog = ProgressDialog.show(FacebookView.this, "Sending","Enviando video ...");
new Thread(){
public void run() {
postOnWall(videoUrl);
dialog.dismiss();
finish();
};
}.start();
}
class AuthorizeListener implements DialogListener{
@Override
public void onCancel() {
Log.i("teste","Logou candelado!");
finish();
}
@Override
public void onComplete(Bundle values) {
Log.i("teste","Logou com sucesso!");
Log.i("teste", "AcessToken : " + mFacebook.getAccessToken());
Log.i("teste", "AcessToken expires : " + mFacebook.getAccessExpires());
Log.i("teste", "Session valid : " + mFacebook.isSessionValid());
storeToken(mFacebook.getAccessToken());
sendVideo();
}
@Override
public void onError(DialogError e) {
Log.i("teste","Erro ao logar: " + e.getMessage());
finish();
}
@Override
public void onFacebookError(FacebookError e) {
Log.i("teste","FacebookError ao logar: " + e.getMessage());
Log.i("teste","FacebookError ao logar Causa: " + e.getCause());
e.printStackTrace();
finish();
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
mFacebook.authorizeCallback(requestCode, resultCode, data);
}
# 1 楼答案
# 2 楼答案
已经找到了答案。只需在facebook对象上设置令牌
acessToken=loadAccessToken(); 日志i(“teste”,“Acesstoken deposis do load:”+Acesstoken)