hank
2018-08-30 17e981a3c4cd9b41283ebe7e8dcbbce26d282a8a
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
9febd9 23 /**
W 24   The error domain for all errors from FBSDKCoreKit.
25
26  Error codes from the SDK in the range 0-99 are reserved for this domain.
bad748 27  */
W 28 FBSDK_EXTERN NSString *const FBSDKErrorDomain;
29
9febd9 30 /**
W 31  NS_ENUM(NSInteger, FBSDKErrorCode)
32   Error codes for FBSDKErrorDomain.
bad748 33  */
W 34 typedef NS_ENUM(NSInteger, FBSDKErrorCode)
35 {
9febd9 36   /**
W 37     Reserved.
bad748 38    */
W 39   FBSDKReservedErrorCode = 0,
40
9febd9 41   /**
W 42     The error code for errors from invalid encryption on incoming encryption URLs.
bad748 43    */
W 44   FBSDKEncryptionErrorCode,
45
9febd9 46   /**
W 47     The error code for errors from invalid arguments to SDK methods.
bad748 48    */
W 49   FBSDKInvalidArgumentErrorCode,
50
9febd9 51   /**
W 52     The error code for unknown errors.
bad748 53    */
W 54   FBSDKUnknownErrorCode,
55
9febd9 56   /**
W 57     A request failed due to a network error. Use NSUnderlyingErrorKey to retrieve
bad748 58    the error object from the NSURLConnection for more information.
W 59    */
60   FBSDKNetworkErrorCode,
61
9febd9 62   /**
W 63     The error code for errors encountered during an App Events flush.
bad748 64    */
W 65   FBSDKAppEventsFlushErrorCode,
66
9febd9 67   /**
W 68     An endpoint that returns a binary response was used with FBSDKGraphRequestConnection.
69
70  Endpoints that return image/jpg, etc. should be accessed using NSURLRequest
bad748 71    */
W 72   FBSDKGraphRequestNonTextMimeTypeReturnedErrorCode,
73
9febd9 74   /**
W 75     The operation failed because the server returned an unexpected response.
76
77  You can get this error if you are not using the most recent SDK, or you are accessing a version of the
bad748 78    Graph API incompatible with the current SDK.
W 79    */
80   FBSDKGraphRequestProtocolMismatchErrorCode,
81
9febd9 82   /**
W 83     The Graph API returned an error.
84
85  See below for useful userInfo keys (beginning with FBSDKGraphRequestError*)
bad748 86    */
W 87   FBSDKGraphRequestGraphAPIErrorCode,
88
9febd9 89   /**
W 90     The specified dialog configuration is not available.
91
92  This error may signify that the configuration for the dialogs has not yet been downloaded from the server
bad748 93    or that the dialog is unavailable.  Subsequent attempts to use the dialog may succeed as the configuration is loaded.
W 94    */
95   FBSDKDialogUnavailableErrorCode,
96
9febd9 97   /**
W 98     Indicates an operation failed because a required access token was not found.
bad748 99    */
W 100   FBSDKAccessTokenRequiredErrorCode,
101
9febd9 102   /**
W 103     Indicates an app switch (typically for a dialog) failed because the destination app is out of date.
bad748 104    */
W 105   FBSDKAppVersionUnsupportedErrorCode,
106
9febd9 107   /**
W 108     Indicates an app switch to the browser (typically for a dialog) failed.
bad748 109    */
9febd9 110   FBSDKBrowserUnavailableErrorCode,
W 111
112   /**
113
114 - Warning:use FBSDKBrowserUnavailableErrorCode instead
115    */
116   FBSDKBrowswerUnavailableErrorCode __attribute__ ((deprecated("use FBSDKBrowserUnavailableErrorCode instead"))) = FBSDKBrowserUnavailableErrorCode,
bad748 117 };
W 118
9febd9 119 /**
W 120  NS_ENUM(NSUInteger, FBSDKGraphRequestErrorCategory)
121   Describes the category of Facebook error. See `FBSDKGraphRequestErrorCategoryKey`.
bad748 122  */
W 123 typedef NS_ENUM(NSUInteger, FBSDKGraphRequestErrorCategory)
124 {
9febd9 125   /** The default error category that is not known to be recoverable. Check `FBSDKLocalizedErrorDescriptionKey` for a user facing message. */
bad748 126   FBSDKGraphRequestErrorCategoryOther = 0,
9febd9 127   /** 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.  */
bad748 128   FBSDKGraphRequestErrorCategoryTransient = 1,
9febd9 129   /** 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. */
bad748 130   FBSDKGraphRequestErrorCategoryRecoverable = 2
W 131 };
132
133 /*
134  @methodgroup error userInfo keys
135  */
136
9febd9 137 /**
W 138   The userInfo key for the invalid collection for errors with FBSDKInvalidArgumentErrorCode.
139
140  If the invalid argument is a collection, the collection can be found with this key and the individual
bad748 141  invalid item can be found with FBSDKErrorArgumentValueKey.
W 142  */
143 FBSDK_EXTERN NSString *const FBSDKErrorArgumentCollectionKey;
144
9febd9 145 /**
W 146   The userInfo key for the invalid argument name for errors with FBSDKInvalidArgumentErrorCode.
bad748 147  */
W 148 FBSDK_EXTERN NSString *const FBSDKErrorArgumentNameKey;
149
9febd9 150 /**
27832c 151  The userInfo key for the invalid argument value for errors with FBSDKInvalidArgumentErrorCode.
bad748 152  */
W 153 FBSDK_EXTERN NSString *const FBSDKErrorArgumentValueKey;
154
9febd9 155 /**
W 156   The userInfo key for the message for developers in NSErrors that originate from the SDK.
157
158  The developer message will not be localized and is not intended to be presented within the app.
bad748 159  */
W 160 FBSDK_EXTERN NSString *const FBSDKErrorDeveloperMessageKey;
161
9febd9 162 /**
W 163   The userInfo key describing a localized description that can be presented to the user.
bad748 164  */
W 165 FBSDK_EXTERN NSString *const FBSDKErrorLocalizedDescriptionKey;
166
9febd9 167 /**
W 168   The userInfo key describing a localized title that can be presented to the user, used with `FBSDKLocalizedErrorDescriptionKey`.
bad748 169  */
W 170 FBSDK_EXTERN NSString *const FBSDKErrorLocalizedTitleKey;
171
172 /*
173  @methodgroup FBSDKGraphRequest error userInfo keys
174  */
175
9febd9 176 /**
W 177   The userInfo key describing the error category, for error recovery purposes.
178
179  See `FBSDKGraphErrorRecoveryProcessor` and `[FBSDKGraphRequest disableErrorRecovery]`.
bad748 180  */
W 181 FBSDK_EXTERN NSString *const FBSDKGraphRequestErrorCategoryKey;
182
183 /*
9febd9 184   The userInfo key for the Graph API error code.
bad748 185  */
W 186 FBSDK_EXTERN NSString *const FBSDKGraphRequestErrorGraphErrorCode;
187
188 /*
9febd9 189   The userInfo key for the Graph API error subcode.
bad748 190  */
W 191 FBSDK_EXTERN NSString *const FBSDKGraphRequestErrorGraphErrorSubcode;
192
193 /*
9febd9 194   The userInfo key for the HTTP status code.
bad748 195  */
W 196 FBSDK_EXTERN NSString *const FBSDKGraphRequestErrorHTTPStatusCodeKey;
197
198 /*
9febd9 199   The userInfo key for the raw JSON response.
bad748 200  */
W 201 FBSDK_EXTERN NSString *const FBSDKGraphRequestErrorParsedJSONResponseKey;
202
9febd9 203 /**
W 204   a formal protocol very similar to the informal protocol NSErrorRecoveryAttempting
bad748 205  */
W 206 @protocol FBSDKErrorRecoveryAttempting<NSObject>
207
9febd9 208 /**
W 209   attempt the recovery
210  - Parameter error: the error
211  - Parameter recoveryOptionIndex: the selected option index
212  - Parameter delegate: the delegate
213  - Parameter didRecoverSelector: the callback selector, see discussion.
214  - Parameter contextInfo: context info to pass back to callback selector, see discussion.
215
216
bad748 217  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:
W 218
219  - (void)didPresentErrorWithRecovery:(BOOL)didRecover contextInfo:(void *)contextInfo;
220
221  The value passed for didRecover must be YES if error recovery was completely successful, NO otherwise.
222  */
223 - (void)attemptRecoveryFromError:(NSError *)error optionIndex:(NSUInteger)recoveryOptionIndex delegate:(id)delegate didRecoverSelector:(SEL)didRecoverSelector contextInfo:(void *)contextInfo;
224
225 @end