forked from facebook/facebook-ios-sdk
-
Notifications
You must be signed in to change notification settings - Fork 0
/
FBAccessTokenData.h
140 lines (110 loc) · 5.07 KB
/
FBAccessTokenData.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
/*
* Copyright 2010-present Facebook.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#import <Foundation/Foundation.h>
#import "FBSession.h"
/*!
@class FBAccessTokenData
@abstract Represents an access token used for the Facebook login flow
and includes associated metadata such as expiration date and permissions.
You should use factory methods (createToken...) to construct instances
and should be treated as immutable.
@discussion For more information, see
https://developers.facebook.com/docs/concepts/login/access-tokens-and-types/.
*/
@interface FBAccessTokenData : NSObject <NSCopying>
/*!
@method
@abstract Creates an FBAccessTokenData from an App Link provided by the Facebook application
or nil if the url is not valid.
@param url The url provided.
@param appID needed in order to verify URL format.
@param urlSchemeSuffix needed in order to verify URL format.
*/
+ (FBAccessTokenData *) createTokenFromFacebookURL:(NSURL *)url appID:(NSString *)appID urlSchemeSuffix:(NSString *)urlSchemeSuffix;
/*!
@method
@abstract Creates an FBAccessTokenData from a dictionary or returns nil if required data is missing.
@param dictionary the dictionary with FBSessionTokenCachingStrategy keys.
*/
+ (FBAccessTokenData *) createTokenFromDictionary:(NSDictionary *)dictionary;
/*!
@method
@abstract Creates an FBAccessTokenData from existing information or returns nil if required data is missing.
@param accessToken The token string. If nil or empty, this method will return nil.
@param permissions The permissions set. A value of nil indicates basic permissions.
@param expirationDate The expiration date. A value of nil defaults to `[NSDate distantFuture]`.
@param loginType The login source of the token.
@param refreshDate The date that token was last refreshed. A value of nil defaults to `[NSDate date]`.
*/
+ (FBAccessTokenData *) createTokenFromString:(NSString *)accessToken
permissions:(NSArray *)permissions
expirationDate:(NSDate *)expirationDate
loginType:(FBSessionLoginType)loginType
refreshDate:(NSDate *)refreshDate;
/*!
@method
@abstract Creates an FBAccessTokenData from existing information or returns nil if required data is missing.
@param accessToken The token string. If nil or empty, this method will return nil.
@param permissions The permissions set. A value of nil indicates basic permissions.
@param expirationDate The expiration date. A value of nil defaults to `[NSDate distantFuture]`.
@param loginType The login source of the token.
@param refreshDate The date that token was last refreshed. A value of nil defaults to `[NSDate date]`.
@param permissionsRefreshDate The date the permissions were last refreshed. A value of nil defaults to `[NSDate distantPast]`.
*/
+ (FBAccessTokenData *) createTokenFromString:(NSString *)accessToken
permissions:(NSArray *)permissions
expirationDate:(NSDate *)expirationDate
loginType:(FBSessionLoginType)loginType
refreshDate:(NSDate *)refreshDate
permissionsRefreshDate:(NSDate *)permissionsRefreshDate;
/*!
@method
@abstract Returns a dictionary representation of this instance.
@discussion This is provided for backwards compatibility with previous
access token related APIs that used a NSDictionary (see `FBSessionTokenCachingStrategy`).
*/
- (NSMutableDictionary *) dictionary;
/*!
@method
@abstract Returns a Boolean value that indicates whether a given object is an FBAccessTokenData object and exactly equal the receiver.
@param accessTokenData the data to compare to the receiver.
*/
- (BOOL) isEqualToAccessTokenData:(FBAccessTokenData *)accessTokenData;
/*!
@abstract returns the access token NSString.
*/
@property (readonly, nonatomic, copy) NSString *accessToken;
/*!
@abstract returns the permissions associated with the access token.
*/
@property (readonly, nonatomic, copy) NSArray *permissions;
/*!
@abstract returns the expiration date of the access token.
*/
@property (readonly, nonatomic, copy) NSDate *expirationDate;
/*!
@abstract returns the login type associated with the token.
*/
@property (readonly, nonatomic) FBSessionLoginType loginType;
/*!
@abstract returns the date the token was last refreshed.
*/
@property (readonly, nonatomic, copy) NSDate *refreshDate;
/*!
@abstract returns the date the permissions were last refreshed.
*/
@property (readonly, nonatomic, copy) NSDate *permissionsRefreshDate;
@end