lipengwei
2019-09-26 88188ea7992a90e66db694e9fc1b304a59608044
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
e81c27 21 #import "FBSDKConstants.h"
H 22
23 NS_ASSUME_NONNULL_BEGIN
24
bad748 25 @class FBSDKAccessToken;
W 26
9febd9 27 /**
e81c27 28  Callback block for returning an array of FBSDKAccessToken instances (and possibly `NSNull` instances); or an error.
bad748 29  */
e81c27 30 typedef void (^FBSDKAccessTokensBlock)(NSArray<FBSDKAccessToken *> *tokens, NSError *_Nullable error)
H 31 NS_SWIFT_NAME(AccessTokensBlock);
bad748 32
W 33
9febd9 34 /**
W 35   Provides methods for managing test accounts for testing Facebook integration.
bad748 36
9febd9 37
W 38  Facebook allows developers to create test accounts for testing their applications'
bad748 39  Facebook integration (see https://developers.facebook.com/docs/test_users/). This class
W 40  simplifies use of these accounts for writing tests. It is not designed for use in
41  production application code.
42
43  This class will make Graph API calls on behalf of your app to manage test accounts and requires
44  an app id and app secret. You will typically use this class to write unit or integration tests.
45  Make sure you NEVER include your app secret in your production app.
46  */
e81c27 47 NS_SWIFT_NAME(TestUsersManager)
bad748 48 @interface FBSDKTestUsersManager : NSObject
W 49
13e53a 50 - (instancetype)init NS_UNAVAILABLE;
H 51 + (instancetype)new NS_UNAVAILABLE;
52
9febd9 53 /**
W 54   construct or return the shared instance
13e53a 55  @param appID the Facebook app id
H 56  @param appSecret the Facebook app secret
bad748 57  */
e81c27 58 + (instancetype)sharedInstanceForAppID:(NSString *)appID appSecret:(NSString *)appSecret
H 59 NS_SWIFT_NAME(shared(forAppID:appSecret:));
bad748 60
9febd9 61 /**
W 62   retrieve FBSDKAccessToken instances for test accounts with the specific permissions.
13e53a 63  @param arraysOfPermissions an array of permissions sets, such as @[ [NSSet setWithObject:@"email"], [NSSet setWithObject:@"user_birthday"]]
bad748 64  if you needed two test accounts with email and birthday permissions, respectively. You can pass in empty nested sets
e81c27 65  if you need two arbitrary test accounts.
13e53a 66  @param createIfNotFound if YES, new test accounts are created if no test accounts existed that fit the permissions
bad748 67  requirement
13e53a 68  @param handler the callback to invoke which will return an array of `FBAccessTokenData` instances or an `NSError`.
bad748 69  If param `createIfNotFound` is NO, the array may contain `[NSNull null]` instances.
W 70
9febd9 71
W 72  If you are requesting test accounts with differing number of permissions, try to order
bad748 73  `arrayOfPermissionsArrays` so that the most number of permissions come first to minimize creation of new
W 74  test accounts.
75  */
e81c27 76 - (void)requestTestAccountTokensWithArraysOfPermissions:(NSArray<NSSet<NSString *> *> *)arraysOfPermissions
bad748 77                                        createIfNotFound:(BOOL)createIfNotFound
e81c27 78                                       completionHandler:(nullable FBSDKAccessTokensBlock)handler
H 79 NS_SWIFT_NAME(requestTestAccountTokens(withPermissions:createIfNotFound:completionHandler:));
bad748 80
9febd9 81 /**
W 82   add a test account with the specified permissions
13e53a 83  @param permissions the set of permissions, e.g., [NSSet setWithObjects:@"email", @"user_friends"]
H 84  @param handler the callback handler
bad748 85  */
e81c27 86 - (void)addTestAccountWithPermissions:(NSSet<NSString *> *)permissions
H 87                     completionHandler:(nullable FBSDKAccessTokensBlock)handler;
bad748 88
9febd9 89 /**
W 90   remove a test account for the given user id
13e53a 91  @param userId the user id
H 92  @param handler the callback handler
bad748 93  */
e81c27 94 - (void)removeTestAccount:(NSString *)userId
H 95         completionHandler:(nullable FBSDKErrorBlock)handler;
bad748 96
9febd9 97 /**
W 98   Make two test users friends with each other.
13e53a 99  @param first the token of the first user
H 100  @param second the token of the second user
101  @param callback the callback handler
bad748 102  */
e81c27 103 - (void)makeFriendsWithFirst:(FBSDKAccessToken *)first
H 104                       second:(FBSDKAccessToken *)second
105                     callback:(nullable FBSDKErrorBlock)callback
106 NS_SWIFT_NAME(makeFriends(first:second:callback:));
bad748 107
W 108 @end
e81c27 109
H 110 NS_ASSUME_NONNULL_END