如何在iOS上获取Facebook访问令牌

Joh*_*ohn 35 iphone facebook access-token

iOS初学者在这里.我有以下代码:

[facebook authorize:nil delegate:self];
NSString *string1=[facebook accessToken];
NSLog(string1);
Run Code Online (Sandbox Code Playgroud)

日志显示: miFOG1WS_7DL88g6d95Uxmzz7GCShsWx_FHuvZkmW0E.eyJpdiI6IjNZZkFBY1c5ZnBaMGEzOWM2RzNKbEEifQ.LNjl06lsOQCO9ArVARqff3Ur2XQHku3CMHDBKkpGg351EB33LGxVv96Hh5R860KDJL0cLq8QezSW0GovYxnhUucOwxlITV364sVKDXIzC3bAn9P_74r2Axl1SgOaTyMMkQ_aSQ2OWh-8d3Zn9BDt3pXVWzBLJ9I4XAosnw0GjuE

这似乎太长,不能成为访问令牌.我读过它应该只有40个字符.我究竟做错了什么?

Nur*_*zam 121

截至2013年3月20日的Facebook SDK使用v3.2.1.

NSString *fbAccessToken = [[[FBSession activeSession] accessTokenData] accessToken];
Run Code Online (Sandbox Code Playgroud)

如果您更喜欢点语法,

NSString *fbAccessToken = [FBSession activeSession].accessTokenData.accessToken;
Run Code Online (Sandbox Code Playgroud)

对于那些使用Swift的人;

var fbAccessToken = FBSession.activeSession().accessTokenData.accessToken
Run Code Online (Sandbox Code Playgroud)

从v4.1.0 SDK开始更新

Objective-C的

NSString *fbAccessToken = [FBSDKAccessToken currentAccessToken].tokenString;
Run Code Online (Sandbox Code Playgroud)

迅速

var fbAccessToken = FBSDKAccessToken.currentAccessToken().tokenString
Run Code Online (Sandbox Code Playgroud)

  • 对于Swift,语法是FBSDKAccessToken.currentAccessToken().tokenString (2认同)

abd*_*.me 8

如果您使用的是Facebook SDK,则可以使用该FBSession对象获取和访问.如果用户对应用程序进行了身份验证并且您使用了活动会话:

NSString * accessToken = [[FBSession activeSession] accessToken];
Run Code Online (Sandbox Code Playgroud)

获取访问令牌.

它对我有用.

  • abdus.me建议的方法在3.2 SDK中已弃用.访问accessToken的正确方法是Nur Iman Izam建议的方法:if([[FBSession activeSession] isOpen]){NSString*fbAccessToken = [[[FBSession activeSession] accessTokenData] accessToken]; ...} (2认同)

Sar*_*rah 4

您可以使用委托方法:

- (void)fbDialogLogin:(NSString *)token expirationDate:(NSDate *)expirationDate 
Run Code Online (Sandbox Code Playgroud)

欲了解更多信息,您可以参考以下问题:Facebook Access Token