2011-05-06 205 views
4

我使用的教程代碼...Facebook授權訪問令牌?

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import com.facebook.android.*; 
import com.facebook.android.Facebook.*; 

public class FacebookSSO extends Activity { 

Facebook facebook = new Facebook("ID"); 

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

    facebook.authorize(this,new String[] { "offline_access", "publish_stream", "email" }, 

     new DialogListener() { 
     @Override 
     public void onComplete(Bundle values) {} 

     @Override 
     public void onFacebookError(FacebookError error) {} 

     @Override 
     public void onError(DialogError e) {} 

     @Override 
     public void onCancel() {} 
    }); 
} 

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

    facebook.authorizeCallback(requestCode, resultCode, data); 
} 

}

我想知道......一旦用戶已經驗證我將如何存儲訪問令牌?在教程中看不到任何提及。

+0

我一直在做不來存儲它。只在需要時才使用Facebook.getAccessToken檢索它 - 意味着每次重新創建應用程序時都會創建一個新的應用程序(我已將Facebook實例存儲在FBApplication中以在多個活動中共享它)。但我很好奇聽到存儲它的優點。 – harism 2011-05-06 10:57:03

回答

5
facebook.authorize(this,new String[] { "offline_access", "publish_stream", "email" }, 

    new DialogListener() { 
    @Override 
    public void onComplete(Bundle values) {} 
    String token=facebook.getAccessToken(); //get access token 
    save(token); 
    @Override 
    public void onFacebookError(FacebookError error) {} 

    @Override 
    public void onError(DialogError e) {} 

    @Override 
    public void onCancel() {} 
}); 
} 

private void save(String token){ 
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); 
prefs.edit().putString("Token", token).commit(); 
} 

即保存在sharedpreferences

0

僅供參考。因爲Facebook的SDK 3

-1

嘗試facebook.authorize已棄用這種方式

@Override 
         public void onComplete(Bundle values) { 
          // Function to handle complete event 
          // Edit Preferences and update facebook acess_token 
          SharedPreferences.Editor editor = mPrefs.edit(); 
          editor.putString("access_token", 
            facebook.getAccessToken()); 
          editor.putLong("access_expires", 
            facebook.getAccessExpires()); 
          editor.commit(); 
         } 

         @Override 
         public void onError(DialogError error) { 
          // Function to handle error 

         } 

         @Override 
         public void onFacebookError(FacebookError fberror) { 
          // Function to handle Facebook errors 

         }