admin
2016-12-01 919ba1d0bec314594cc2b31adf28d425fbc0cf38
commit | author | age
bad748 1 // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
W 2 //
3 // You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
4 // copy, modify, and distribute this software in source code or binary form for use
5 // in connection with the web services and APIs provided by Facebook.
6 //
7 // As with any software that integrates with the Facebook platform, your use of
8 // this software is subject to the Facebook Developer Principles and Policies
9 // [http://developers.facebook.com/policy/]. This copyright notice shall be
10 // included in all copies or substantial portions of the software.
11 //
12 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
13 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
14 // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
15 // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
16 // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
17 // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
18
19 #import <Foundation/Foundation.h>
20
21 #import <FBSDKCoreKit/FBSDKMacros.h>
22
23 /*!
24  @abstract The error domain for all errors from FBSDKCoreKit.
25  @discussion Error codes from the SDK in the range 0-99 are reserved for this domain.
26  */
27 FBSDK_EXTERN NSString *const FBSDKErrorDomain;
28
29 /*!
30  @typedef NS_ENUM(NSInteger, FBSDKErrorCode)
31  @abstract Error codes for FBSDKErrorDomain.
32  */
33 typedef NS_ENUM(NSInteger, FBSDKErrorCode)
34 {
35   /*!
36    @abstract Reserved.
37    */
38   FBSDKReservedErrorCode = 0,
39
40   /*!
41    @abstract The error code for errors from invalid encryption on incoming encryption URLs.
42    */
43   FBSDKEncryptionErrorCode,
44
45   /*!
46    @abstract The error code for errors from invalid arguments to SDK methods.
47    */
48   FBSDKInvalidArgumentErrorCode,
49
50   /*!
51    @abstract The error code for unknown errors.
52    */
53   FBSDKUnknownErrorCode,
54
55   /*!
56    @abstract A request failed due to a network error. Use NSUnderlyingErrorKey to retrieve
57    the error object from the NSURLConnection for more information.
58    */
59   FBSDKNetworkErrorCode,
60
61   /*!
62    @abstract The error code for errors encounted during an App Events flush.
63    */
64   FBSDKAppEventsFlushErrorCode,
65
66   /*!
67    @abstract An endpoint that returns a binary response was used with FBSDKGraphRequestConnection.
68    @discussion Endpoints that return image/jpg, etc. should be accessed using NSURLRequest
69    */
70   FBSDKGraphRequestNonTextMimeTypeReturnedErrorCode,
71
72   /*!
73    @abstract The operation failed because the server returned an unexpected response.
74    @discussion You can get this error if you are not using the most recent SDK, or you are accessing a version of the
75    Graph API incompatible with the current SDK.
76    */
77   FBSDKGraphRequestProtocolMismatchErrorCode,
78
79   /*!
80    @abstract The Graph API returned an error.
81    @discussion See below for useful userInfo keys (beginning with FBSDKGraphRequestError*)
82    */
83   FBSDKGraphRequestGraphAPIErrorCode,
84
85   /*!
86    @abstract The specified dialog configuration is not available.
87    @discussion This error may signify that the configuration for the dialogs has not yet been downloaded from the server
88    or that the dialog is unavailable.  Subsequent attempts to use the dialog may succeed as the configuration is loaded.
89    */
90   FBSDKDialogUnavailableErrorCode,
91
92   /*!
93    @abstract Indicates an operation failed because a required access token was not found.
94    */
95   FBSDKAccessTokenRequiredErrorCode,
96
97   /*!
98    @abstract Indicates an app switch (typically for a dialog) failed because the destination app is out of date.
99    */
100   FBSDKAppVersionUnsupportedErrorCode,
101
102   /*!
103    @abstract Indicates an app switch to the browser (typically for a dialog) failed.
104    */
105   FBSDKBrowswerUnavailableErrorCode,
106 };
107
108 /*!
109  @typedef NS_ENUM(NSUInteger, FBSDKGraphRequestErrorCategory)
110  @abstract Describes the category of Facebook error. See `FBSDKGraphRequestErrorCategoryKey`.
111  */
112 typedef NS_ENUM(NSUInteger, FBSDKGraphRequestErrorCategory)
113 {
114   /*! The default error category that is not known to be recoverable. Check `FBSDKLocalizedErrorDescriptionKey` for a user facing message. */
115   FBSDKGraphRequestErrorCategoryOther = 0,
116   /*! Indicates the error is temporary (such as server throttling). While a recoveryAttempter will be provided with the error instance, the attempt is guaranteed to succeed so you can simply retry the operation if you do not want to present an alert.  */
117   FBSDKGraphRequestErrorCategoryTransient = 1,
118   /*! Indicates the error can be recovered (such as requiring a login). A recoveryAttempter will be provided with the error instance that can take UI action. */
119   FBSDKGraphRequestErrorCategoryRecoverable = 2
120 };
121
122 /*
123  @methodgroup error userInfo keys
124  */
125
126 /*!
127  @abstract The userInfo key for the invalid collection for errors with FBSDKInvalidArgumentErrorCode.
128  @discussion If the invalid argument is a collection, the collection can be found with this key and the individual
129  invalid item can be found with FBSDKErrorArgumentValueKey.
130  */
131 FBSDK_EXTERN NSString *const FBSDKErrorArgumentCollectionKey;
132
133 /*!
134  @abstract The userInfo key for the invalid argument name for errors with FBSDKInvalidArgumentErrorCode.
135  */
136 FBSDK_EXTERN NSString *const FBSDKErrorArgumentNameKey;
137
138 /*!
139  @abstract The userInfo key for the invalid argument value for errors with FBSDKInvalidArgumentErrorCode.
140  */
141 FBSDK_EXTERN NSString *const FBSDKErrorArgumentValueKey;
142
143 /*!
144  @abstract The userInfo key for the message for developers in NSErrors that originate from the SDK.
145  @discussion The developer message will not be localized and is not intended to be presented within the app.
146  */
147 FBSDK_EXTERN NSString *const FBSDKErrorDeveloperMessageKey;
148
149 /*!
150  @abstract The userInfo key describing a localized description that can be presented to the user.
151  */
152 FBSDK_EXTERN NSString *const FBSDKErrorLocalizedDescriptionKey;
153
154 /*!
155  @abstract The userInfo key describing a localized title that can be presented to the user, used with `FBSDKLocalizedErrorDescriptionKey`.
156  */
157 FBSDK_EXTERN NSString *const FBSDKErrorLocalizedTitleKey;
158
159 /*
160  @methodgroup FBSDKGraphRequest error userInfo keys
161  */
162
163 /*!
164  @abstract The userInfo key describing the error category, for error recovery purposes.
165  @discussion See `FBSDKGraphErrorRecoveryProcessor` and `[FBSDKGraphRequest disableErrorRecovery]`.
166  */
167 FBSDK_EXTERN NSString *const FBSDKGraphRequestErrorCategoryKey;
168
169 /*
170  @abstract The userInfo key for the Graph API error code.
171  */
172 FBSDK_EXTERN NSString *const FBSDKGraphRequestErrorGraphErrorCode;
173
174 /*
175  @abstract The userInfo key for the Graph API error subcode.
176  */
177 FBSDK_EXTERN NSString *const FBSDKGraphRequestErrorGraphErrorSubcode;
178
179 /*
180  @abstract The userInfo key for the HTTP status code.
181  */
182 FBSDK_EXTERN NSString *const FBSDKGraphRequestErrorHTTPStatusCodeKey;
183
184 /*
185  @abstract The userInfo key for the raw JSON response.
186  */
187 FBSDK_EXTERN NSString *const FBSDKGraphRequestErrorParsedJSONResponseKey;
188
189 /*!
190  @abstract a formal protocol very similar to the informal protocol NSErrorRecoveryAttempting
191  */
192 @protocol FBSDKErrorRecoveryAttempting<NSObject>
193
194 /*!
195  @abstract attempt the recovery
196  @param error the error
197  @param recoveryOptionIndex the selected option index
198  @param delegate the delegate
199  @param didRecoverSelector the callback selector, see discussion.
200  @param contextInfo context info to pass back to callback selector, see discussion.
201  @discussion
202  Given that an error alert has been presented document-modally to the user, and the user has chosen one of the error's recovery options, attempt recovery from the error, and send the selected message to the specified delegate. The option index is an index into the error's array of localized recovery options. The method selected by didRecoverSelector must have the same signature as:
203
204  - (void)didPresentErrorWithRecovery:(BOOL)didRecover contextInfo:(void *)contextInfo;
205
206  The value passed for didRecover must be YES if error recovery was completely successful, NO otherwise.
207  */
208 - (void)attemptRecoveryFromError:(NSError *)error optionIndex:(NSUInteger)recoveryOptionIndex delegate:(id)delegate didRecoverSelector:(SEL)didRecoverSelector contextInfo:(void *)contextInfo;
209
210 @end