@ohos-ports/react-native-fbsdk-next 13.4.3-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +943 -0
- package/android/build.gradle +57 -0
- package/android/src/main/AndroidManifest.xml +46 -0
- package/android/src/main/java/com/facebook/reactnative/androidsdk/FBAccessTokenModule.java +151 -0
- package/android/src/main/java/com/facebook/reactnative/androidsdk/FBActivityEventListener.java +40 -0
- package/android/src/main/java/com/facebook/reactnative/androidsdk/FBAppEventsLoggerModule.java +414 -0
- package/android/src/main/java/com/facebook/reactnative/androidsdk/FBAppLinkModule.java +86 -0
- package/android/src/main/java/com/facebook/reactnative/androidsdk/FBGameRequestDialogModule.java +94 -0
- package/android/src/main/java/com/facebook/reactnative/androidsdk/FBGraphRequestModule.java +283 -0
- package/android/src/main/java/com/facebook/reactnative/androidsdk/FBLoginButtonManager.java +83 -0
- package/android/src/main/java/com/facebook/reactnative/androidsdk/FBLoginManagerModule.java +171 -0
- package/android/src/main/java/com/facebook/reactnative/androidsdk/FBMessageDialogModule.java +111 -0
- package/android/src/main/java/com/facebook/reactnative/androidsdk/FBProfileModule.java +68 -0
- package/android/src/main/java/com/facebook/reactnative/androidsdk/FBSDKCallbackManagerBaseJavaModule.java +41 -0
- package/android/src/main/java/com/facebook/reactnative/androidsdk/FBSDKPackage.java +60 -0
- package/android/src/main/java/com/facebook/reactnative/androidsdk/FBSendButtonManager.java +51 -0
- package/android/src/main/java/com/facebook/reactnative/androidsdk/FBSettingsModule.java +95 -0
- package/android/src/main/java/com/facebook/reactnative/androidsdk/FBShareButtonManager.java +53 -0
- package/android/src/main/java/com/facebook/reactnative/androidsdk/FBShareDialogModule.java +107 -0
- package/android/src/main/java/com/facebook/reactnative/androidsdk/RCTLoginButton.java +126 -0
- package/android/src/main/java/com/facebook/reactnative/androidsdk/RCTLoginButtonEvent.java +27 -0
- package/android/src/main/java/com/facebook/reactnative/androidsdk/ReactNativeFacebookSDKCallback.java +58 -0
- package/android/src/main/java/com/facebook/reactnative/androidsdk/Utility.java +283 -0
- package/app.plugin.js +1 -0
- package/expo-module.config.json +10 -0
- package/ios/ExpoAdapterFBSDKNext/FacebookAppDelegate.swift +21 -0
- package/ios/ExpoAdapterFBSDKNext.podspec +33 -0
- package/ios/RCTFBSDK/core/RCTConvert+FBSDKAccessToken.h +27 -0
- package/ios/RCTFBSDK/core/RCTConvert+FBSDKAccessToken.m +41 -0
- package/ios/RCTFBSDK/core/RCTFBSDKAEMReporter.m +30 -0
- package/ios/RCTFBSDK/core/RCTFBSDKAccessToken.h +24 -0
- package/ios/RCTFBSDK/core/RCTFBSDKAccessToken.m +115 -0
- package/ios/RCTFBSDK/core/RCTFBSDKAppEvents.h +24 -0
- package/ios/RCTFBSDK/core/RCTFBSDKAppEvents.m +251 -0
- package/ios/RCTFBSDK/core/RCTFBSDKAppLink.h +24 -0
- package/ios/RCTFBSDK/core/RCTFBSDKAppLink.m +52 -0
- package/ios/RCTFBSDK/core/RCTFBSDKAuthenticationToken.h +6 -0
- package/ios/RCTFBSDK/core/RCTFBSDKAuthenticationToken.m +35 -0
- package/ios/RCTFBSDK/core/RCTFBSDKGraphRequestConnectionContainer.h +50 -0
- package/ios/RCTFBSDK/core/RCTFBSDKGraphRequestConnectionContainer.m +124 -0
- package/ios/RCTFBSDK/core/RCTFBSDKGraphRequestManager.h +25 -0
- package/ios/RCTFBSDK/core/RCTFBSDKGraphRequestManager.m +43 -0
- package/ios/RCTFBSDK/core/RCTFBSDKProfile.h +6 -0
- package/ios/RCTFBSDK/core/RCTFBSDKProfile.m +58 -0
- package/ios/RCTFBSDK/core/RCTFBSDKSettings.h +14 -0
- package/ios/RCTFBSDK/core/RCTFBSDKSettings.m +80 -0
- package/ios/RCTFBSDK/login/RCTConvert+FBSDKLogin.h +28 -0
- package/ios/RCTFBSDK/login/RCTConvert+FBSDKLogin.m +35 -0
- package/ios/RCTFBSDK/login/RCTFBSDKLoginButtonManager.h +25 -0
- package/ios/RCTFBSDK/login/RCTFBSDKLoginButtonManager.m +73 -0
- package/ios/RCTFBSDK/login/RCTFBSDKLoginButtonView.h +12 -0
- package/ios/RCTFBSDK/login/RCTFBSDKLoginButtonView.m +57 -0
- package/ios/RCTFBSDK/login/RCTFBSDKLoginManager.h +22 -0
- package/ios/RCTFBSDK/login/RCTFBSDKLoginManager.m +154 -0
- package/ios/RCTFBSDK/share/RCTConvert+FBSDKSharingContent.h +29 -0
- package/ios/RCTFBSDK/share/RCTConvert+FBSDKSharingContent.m +111 -0
- package/ios/RCTFBSDK/share/RCTFBSDKGameRequestDialog.h +24 -0
- package/ios/RCTFBSDK/share/RCTFBSDKGameRequestDialog.m +134 -0
- package/ios/RCTFBSDK/share/RCTFBSDKMessageDialog.h +24 -0
- package/ios/RCTFBSDK/share/RCTFBSDKMessageDialog.m +116 -0
- package/ios/RCTFBSDK/share/RCTFBSDKSendButtonManager.h +25 -0
- package/ios/RCTFBSDK/share/RCTFBSDKSendButtonManager.m +39 -0
- package/ios/RCTFBSDK/share/RCTFBSDKShareButtonManager.h +23 -0
- package/ios/RCTFBSDK/share/RCTFBSDKShareButtonManager.m +39 -0
- package/ios/RCTFBSDK/share/RCTFBSDKShareDialog.h +24 -0
- package/ios/RCTFBSDK/share/RCTFBSDKShareDialog.m +134 -0
- package/ios/RCTFBSDK/share/RCTFBSDKShareHelper.h +21 -0
- package/ios/RCTFBSDK/share/RCTFBSDKShareHelper.m +32 -0
- package/ios/RCTFBSDK.xcodeproj/project.pbxproj +446 -0
- package/ios/RCTFBSDK.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- package/ios/RCTFBSDK.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- package/jest/mocks/index.js +81 -0
- package/jest/setup.js +3 -0
- package/lib/commonjs/FBAEMReporter.js +39 -0
- package/lib/commonjs/FBAEMReporter.js.map +1 -0
- package/lib/commonjs/FBAccessToken.js +198 -0
- package/lib/commonjs/FBAccessToken.js.map +1 -0
- package/lib/commonjs/FBAppEventsLogger.js +221 -0
- package/lib/commonjs/FBAppEventsLogger.js.map +1 -0
- package/lib/commonjs/FBAppLink.js +36 -0
- package/lib/commonjs/FBAppLink.js.map +1 -0
- package/lib/commonjs/FBAuthenticationToken.js +55 -0
- package/lib/commonjs/FBAuthenticationToken.js.map +1 -0
- package/lib/commonjs/FBGameRequestDialog.js +45 -0
- package/lib/commonjs/FBGameRequestDialog.js.map +1 -0
- package/lib/commonjs/FBGraphRequest.js +66 -0
- package/lib/commonjs/FBGraphRequest.js.map +1 -0
- package/lib/commonjs/FBGraphRequestManager.js +96 -0
- package/lib/commonjs/FBGraphRequestManager.js.map +1 -0
- package/lib/commonjs/FBLoginButton.js +67 -0
- package/lib/commonjs/FBLoginButton.js.map +1 -0
- package/lib/commonjs/FBLoginManager.js +102 -0
- package/lib/commonjs/FBLoginManager.js.map +1 -0
- package/lib/commonjs/FBMessageDialog.js +51 -0
- package/lib/commonjs/FBMessageDialog.js.map +1 -0
- package/lib/commonjs/FBProfile.js +134 -0
- package/lib/commonjs/FBProfile.js.map +1 -0
- package/lib/commonjs/FBSendButton.js +48 -0
- package/lib/commonjs/FBSendButton.js.map +1 -0
- package/lib/commonjs/FBSettings.js +115 -0
- package/lib/commonjs/FBSettings.js.map +1 -0
- package/lib/commonjs/FBShareButton.js +48 -0
- package/lib/commonjs/FBShareButton.js.map +1 -0
- package/lib/commonjs/FBShareDialog.js +57 -0
- package/lib/commonjs/FBShareDialog.js.map +1 -0
- package/lib/commonjs/index.js +323 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/models/FBAppGroupCreationContent.js +2 -0
- package/lib/commonjs/models/FBAppGroupCreationContent.js.map +1 -0
- package/lib/commonjs/models/FBGameRequestContent.js +2 -0
- package/lib/commonjs/models/FBGameRequestContent.js.map +1 -0
- package/lib/commonjs/models/FBSDKCallback.js +2 -0
- package/lib/commonjs/models/FBSDKCallback.js.map +1 -0
- package/lib/commonjs/models/FBShareContent.js +6 -0
- package/lib/commonjs/models/FBShareContent.js.map +1 -0
- package/lib/commonjs/models/FBShareLinkContent.js +6 -0
- package/lib/commonjs/models/FBShareLinkContent.js.map +1 -0
- package/lib/commonjs/models/FBSharePhoto.js +2 -0
- package/lib/commonjs/models/FBSharePhoto.js.map +1 -0
- package/lib/commonjs/models/FBSharePhotoContent.js +6 -0
- package/lib/commonjs/models/FBSharePhotoContent.js.map +1 -0
- package/lib/commonjs/models/FBShareVideo.js +2 -0
- package/lib/commonjs/models/FBShareVideo.js.map +1 -0
- package/lib/commonjs/models/FBShareVideoContent.js +6 -0
- package/lib/commonjs/models/FBShareVideoContent.js.map +1 -0
- package/lib/commonjs/util/validate.js +180 -0
- package/lib/commonjs/util/validate.js.map +1 -0
- package/lib/commonjs/utils/index.js +2 -0
- package/lib/commonjs/utils/index.js.map +1 -0
- package/lib/module/FBAEMReporter.js +34 -0
- package/lib/module/FBAEMReporter.js.map +1 -0
- package/lib/module/FBAccessToken.js +191 -0
- package/lib/module/FBAccessToken.js.map +1 -0
- package/lib/module/FBAppEventsLogger.js +215 -0
- package/lib/module/FBAppEventsLogger.js.map +1 -0
- package/lib/module/FBAppLink.js +29 -0
- package/lib/module/FBAppLink.js.map +1 -0
- package/lib/module/FBAuthenticationToken.js +48 -0
- package/lib/module/FBAuthenticationToken.js.map +1 -0
- package/lib/module/FBGameRequestDialog.js +39 -0
- package/lib/module/FBGameRequestDialog.js.map +1 -0
- package/lib/module/FBGraphRequest.js +60 -0
- package/lib/module/FBGraphRequest.js.map +1 -0
- package/lib/module/FBGraphRequestManager.js +90 -0
- package/lib/module/FBGraphRequestManager.js.map +1 -0
- package/lib/module/FBLoginButton.js +62 -0
- package/lib/module/FBLoginButton.js.map +1 -0
- package/lib/module/FBLoginManager.js +97 -0
- package/lib/module/FBLoginManager.js.map +1 -0
- package/lib/module/FBMessageDialog.js +45 -0
- package/lib/module/FBMessageDialog.js.map +1 -0
- package/lib/module/FBProfile.js +127 -0
- package/lib/module/FBProfile.js.map +1 -0
- package/lib/module/FBSendButton.js +41 -0
- package/lib/module/FBSendButton.js.map +1 -0
- package/lib/module/FBSettings.js +108 -0
- package/lib/module/FBSettings.js.map +1 -0
- package/lib/module/FBShareButton.js +41 -0
- package/lib/module/FBShareButton.js.map +1 -0
- package/lib/module/FBShareDialog.js +51 -0
- package/lib/module/FBShareDialog.js.map +1 -0
- package/lib/module/index.js +44 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/models/FBAppGroupCreationContent.js +2 -0
- package/lib/module/models/FBAppGroupCreationContent.js.map +1 -0
- package/lib/module/models/FBGameRequestContent.js +2 -0
- package/lib/module/models/FBGameRequestContent.js.map +1 -0
- package/lib/module/models/FBSDKCallback.js +2 -0
- package/lib/module/models/FBSDKCallback.js.map +1 -0
- package/lib/module/models/FBShareContent.js +2 -0
- package/lib/module/models/FBShareContent.js.map +1 -0
- package/lib/module/models/FBShareLinkContent.js +2 -0
- package/lib/module/models/FBShareLinkContent.js.map +1 -0
- package/lib/module/models/FBSharePhoto.js +2 -0
- package/lib/module/models/FBSharePhoto.js.map +1 -0
- package/lib/module/models/FBSharePhotoContent.js +2 -0
- package/lib/module/models/FBSharePhotoContent.js.map +1 -0
- package/lib/module/models/FBShareVideo.js +2 -0
- package/lib/module/models/FBShareVideo.js.map +1 -0
- package/lib/module/models/FBShareVideoContent.js +2 -0
- package/lib/module/models/FBShareVideoContent.js.map +1 -0
- package/lib/module/util/validate.js +157 -0
- package/lib/module/util/validate.js.map +1 -0
- package/lib/module/utils/index.js +2 -0
- package/lib/module/utils/index.js.map +1 -0
- package/lib/typescript/FBAEMReporter.d.ts +21 -0
- package/lib/typescript/FBAEMReporter.d.ts.map +1 -0
- package/lib/typescript/FBAccessToken.d.ts +118 -0
- package/lib/typescript/FBAccessToken.d.ts.map +1 -0
- package/lib/typescript/FBAppEventsLogger.d.ts +201 -0
- package/lib/typescript/FBAppEventsLogger.d.ts.map +1 -0
- package/lib/typescript/FBAppLink.d.ts +5 -0
- package/lib/typescript/FBAppLink.d.ts.map +1 -0
- package/lib/typescript/FBAuthenticationToken.d.ts +29 -0
- package/lib/typescript/FBAuthenticationToken.d.ts.map +1 -0
- package/lib/typescript/FBGameRequestDialog.d.ts +39 -0
- package/lib/typescript/FBGameRequestDialog.d.ts.map +1 -0
- package/lib/typescript/FBGraphRequest.d.ts +70 -0
- package/lib/typescript/FBGraphRequest.d.ts.map +1 -0
- package/lib/typescript/FBGraphRequestManager.d.ts +51 -0
- package/lib/typescript/FBGraphRequestManager.d.ts.map +1 -0
- package/lib/typescript/FBLoginButton.d.ts +92 -0
- package/lib/typescript/FBLoginButton.d.ts.map +1 -0
- package/lib/typescript/FBLoginManager.d.ts +77 -0
- package/lib/typescript/FBLoginManager.d.ts.map +1 -0
- package/lib/typescript/FBMessageDialog.d.ts +42 -0
- package/lib/typescript/FBMessageDialog.d.ts.map +1 -0
- package/lib/typescript/FBProfile.d.ts +127 -0
- package/lib/typescript/FBProfile.d.ts.map +1 -0
- package/lib/typescript/FBSendButton.d.ts +42 -0
- package/lib/typescript/FBSendButton.d.ts.map +1 -0
- package/lib/typescript/FBSettings.d.ts +49 -0
- package/lib/typescript/FBSettings.d.ts.map +1 -0
- package/lib/typescript/FBShareButton.d.ts +42 -0
- package/lib/typescript/FBShareButton.d.ts.map +1 -0
- package/lib/typescript/FBShareDialog.d.ts +69 -0
- package/lib/typescript/FBShareDialog.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +43 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/models/FBAppGroupCreationContent.d.ts +43 -0
- package/lib/typescript/models/FBAppGroupCreationContent.d.ts.map +1 -0
- package/lib/typescript/models/FBGameRequestContent.d.ts +63 -0
- package/lib/typescript/models/FBGameRequestContent.d.ts.map +1 -0
- package/lib/typescript/models/FBSDKCallback.d.ts +4 -0
- package/lib/typescript/models/FBSDKCallback.d.ts.map +1 -0
- package/lib/typescript/models/FBShareContent.d.ts +48 -0
- package/lib/typescript/models/FBShareContent.d.ts.map +1 -0
- package/lib/typescript/models/FBShareLinkContent.d.ts +65 -0
- package/lib/typescript/models/FBShareLinkContent.d.ts.map +1 -0
- package/lib/typescript/models/FBSharePhoto.d.ts +43 -0
- package/lib/typescript/models/FBSharePhoto.d.ts.map +1 -0
- package/lib/typescript/models/FBSharePhotoContent.d.ts +45 -0
- package/lib/typescript/models/FBSharePhotoContent.d.ts.map +1 -0
- package/lib/typescript/models/FBShareVideo.d.ts +31 -0
- package/lib/typescript/models/FBShareVideo.d.ts.map +1 -0
- package/lib/typescript/models/FBShareVideoContent.d.ts +58 -0
- package/lib/typescript/models/FBShareVideoContent.d.ts.map +1 -0
- package/lib/typescript/util/validate.d.ts +62 -0
- package/lib/typescript/util/validate.d.ts.map +1 -0
- package/lib/typescript/utils/index.d.ts +2 -0
- package/lib/typescript/utils/index.d.ts.map +1 -0
- package/package.json +155 -0
- package/plugin/build/config.d.ts +53 -0
- package/plugin/build/config.js +46 -0
- package/plugin/build/withFacebook.d.ts +4 -0
- package/plugin/build/withFacebook.js +59 -0
- package/plugin/build/withFacebookAndroid.d.ts +6 -0
- package/plugin/build/withFacebookAndroid.js +197 -0
- package/plugin/build/withFacebookIOS.d.ts +15 -0
- package/plugin/build/withFacebookIOS.js +163 -0
- package/plugin/build/withSKAdNetworkIdentifiers.d.ts +9 -0
- package/plugin/build/withSKAdNetworkIdentifiers.js +36 -0
- package/plugin/tsconfig.json +9 -0
- package/react-native-fbsdk-next.podspec +34 -0
- package/src/FBAEMReporter.ts +44 -0
- package/src/FBAccessToken.ts +222 -0
- package/src/FBAppEventsLogger.ts +375 -0
- package/src/FBAppLink.ts +30 -0
- package/src/FBAuthenticationToken.ts +61 -0
- package/src/FBGameRequestDialog.ts +49 -0
- package/src/FBGraphRequest.ts +89 -0
- package/src/FBGraphRequestManager.ts +117 -0
- package/src/FBLoginButton.tsx +152 -0
- package/src/FBLoginManager.ts +133 -0
- package/src/FBMessageDialog.ts +53 -0
- package/src/FBProfile.ts +166 -0
- package/src/FBSendButton.tsx +61 -0
- package/src/FBSettings.ts +122 -0
- package/src/FBShareButton.tsx +61 -0
- package/src/FBShareDialog.ts +96 -0
- package/src/index.ts +85 -0
- package/src/models/FBAppGroupCreationContent.ts +48 -0
- package/src/models/FBGameRequestContent.ts +81 -0
- package/src/models/FBSDKCallback.ts +3 -0
- package/src/models/FBShareContent.ts +54 -0
- package/src/models/FBShareLinkContent.ts +71 -0
- package/src/models/FBSharePhoto.ts +45 -0
- package/src/models/FBSharePhotoContent.ts +48 -0
- package/src/models/FBShareVideo.ts +31 -0
- package/src/models/FBShareVideoContent.ts +64 -0
- package/src/util/validate.ts +167 -0
- package/src/utils/index.ts +1 -0
- package/tsconfig.json +103 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// Copyright (c) 2015-present, Facebook, Inc. All rights reserved.
|
|
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 <React/RCTBridgeModule.h>
|
|
20
|
+
|
|
21
|
+
#import <FBSDKCoreKit/FBSDKCoreKit.h>
|
|
22
|
+
|
|
23
|
+
@interface RCTFBSDKAppEvents : NSObject <RCTBridgeModule>
|
|
24
|
+
@end
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
// Copyright (c) 2015-present, Facebook, Inc. All rights reserved.
|
|
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 "RCTFBSDKAppEvents.h"
|
|
20
|
+
|
|
21
|
+
#import <React/RCTUtils.h>
|
|
22
|
+
|
|
23
|
+
#import "RCTConvert+FBSDKAccessToken.h"
|
|
24
|
+
|
|
25
|
+
@implementation RCTConvert (RCTFBSDKAppEvents)
|
|
26
|
+
|
|
27
|
+
RCT_ENUM_CONVERTER(FBSDKAppEventsFlushBehavior, (@{
|
|
28
|
+
@"auto": @(FBSDKAppEventsFlushBehaviorAuto),
|
|
29
|
+
@"explicit_only": @(FBSDKAppEventsFlushBehaviorExplicitOnly),
|
|
30
|
+
}), FBSDKAppEventsFlushBehaviorAuto, unsignedIntegerValue)
|
|
31
|
+
|
|
32
|
+
RCT_ENUM_CONVERTER(FBSDKProductAvailability, (@{
|
|
33
|
+
@"in_stock": @(FBSDKProductAvailabilityInStock),
|
|
34
|
+
@"out_of_stock": @(FBSDKProductAvailabilityOutOfStock),
|
|
35
|
+
@"preorder": @(FBSDKProductAvailabilityPreOrder),
|
|
36
|
+
@"avaliable_for_order": @(FBSDKProductAvailabilityAvailableForOrder),
|
|
37
|
+
@"discontinued": @(FBSDKProductAvailabilityDiscontinued),
|
|
38
|
+
}), FBSDKProductAvailabilityInStock, unsignedIntegerValue)
|
|
39
|
+
|
|
40
|
+
RCT_ENUM_CONVERTER(FBSDKProductCondition, (@{
|
|
41
|
+
@"new": @(FBSDKProductConditionNew),
|
|
42
|
+
@"refurbished": @(FBSDKProductConditionRefurbished),
|
|
43
|
+
@"used": @(FBSDKProductConditionUsed),
|
|
44
|
+
}), FBSDKProductConditionNew, unsignedIntegerValue)
|
|
45
|
+
|
|
46
|
+
@end
|
|
47
|
+
|
|
48
|
+
@implementation RCTFBSDKAppEvents
|
|
49
|
+
|
|
50
|
+
RCT_EXPORT_MODULE(FBAppEventsLogger);
|
|
51
|
+
|
|
52
|
+
- (dispatch_queue_t)methodQueue
|
|
53
|
+
{
|
|
54
|
+
return dispatch_get_main_queue();
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
#pragma mark - React Native Methods
|
|
58
|
+
|
|
59
|
+
RCT_EXPORT_METHOD(logEvent:(NSString *)eventName
|
|
60
|
+
valueToSum:(nonnull NSNumber *)valueToSum
|
|
61
|
+
parameters:(NSDictionary *)parameters)
|
|
62
|
+
{
|
|
63
|
+
parameters = RCTDictionaryWithoutNullValues(parameters);
|
|
64
|
+
|
|
65
|
+
[FBSDKAppEvents.shared logEvent:eventName
|
|
66
|
+
valueToSum:valueToSum
|
|
67
|
+
parameters:parameters
|
|
68
|
+
accessToken:nil];
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
RCT_EXPORT_METHOD(logPurchase:(double)purchaseAmount
|
|
72
|
+
currency:(NSString *)currency
|
|
73
|
+
parameters:(NSDictionary *)parameters)
|
|
74
|
+
{
|
|
75
|
+
parameters = RCTDictionaryWithoutNullValues(parameters);
|
|
76
|
+
|
|
77
|
+
[FBSDKAppEvents.shared logPurchase:purchaseAmount
|
|
78
|
+
currency:currency
|
|
79
|
+
parameters:parameters
|
|
80
|
+
accessToken:nil];
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
RCT_EXPORT_METHOD(logProductItem:(NSString *)itemID
|
|
84
|
+
availability:(FBSDKProductAvailability)availability
|
|
85
|
+
condition:(FBSDKProductCondition)condition
|
|
86
|
+
description:(NSString *)description
|
|
87
|
+
imageLink:(NSString *)imageLink
|
|
88
|
+
link:(NSString *)link
|
|
89
|
+
title:(NSString *)title
|
|
90
|
+
priceAmount:(double)priceAmount
|
|
91
|
+
currency:(NSString *)currency
|
|
92
|
+
gtin:(NSString *)gtin
|
|
93
|
+
mpn:(NSString *)mpn
|
|
94
|
+
brand:(NSString *)brand
|
|
95
|
+
parameters:(NSDictionary *)parameters)
|
|
96
|
+
{
|
|
97
|
+
[FBSDKAppEvents.shared logProductItem:itemID
|
|
98
|
+
availability:availability
|
|
99
|
+
condition:condition
|
|
100
|
+
description:description
|
|
101
|
+
imageLink:imageLink
|
|
102
|
+
link:link
|
|
103
|
+
title:title
|
|
104
|
+
priceAmount:priceAmount
|
|
105
|
+
currency:currency
|
|
106
|
+
gtin:gtin
|
|
107
|
+
mpn:mpn
|
|
108
|
+
brand:brand
|
|
109
|
+
parameters:parameters];
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
RCT_EXPORT_METHOD(logPushNotificationOpen:(NSDictionary *)payload)
|
|
113
|
+
{
|
|
114
|
+
[FBSDKAppEvents.shared logPushNotificationOpen:payload];
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
RCT_EXPORT_METHOD(setUserID:(NSString *)userID)
|
|
118
|
+
{
|
|
119
|
+
[FBSDKAppEvents.shared setUserID:userID];
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
RCT_EXPORT_METHOD(clearUserID)
|
|
123
|
+
{
|
|
124
|
+
[FBSDKAppEvents.shared setUserID:nil];
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(getUserID)
|
|
128
|
+
{
|
|
129
|
+
return [FBSDKAppEvents.shared userID];
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
RCT_EXPORT_METHOD(getAnonymousID:(RCTPromiseResolveBlock)resolve
|
|
133
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
134
|
+
{
|
|
135
|
+
@try {
|
|
136
|
+
NSString *anonymousID = [FBSDKAppEvents.shared anonymousID];
|
|
137
|
+
resolve(anonymousID);
|
|
138
|
+
}
|
|
139
|
+
@catch (NSError *error) {
|
|
140
|
+
reject(@"E_ANONYMOUS_ID_ERROR", @"Can not get anonymousID", error);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
RCT_EXPORT_METHOD(getAdvertiserID:(RCTPromiseResolveBlock)resolve
|
|
145
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
146
|
+
{
|
|
147
|
+
@try {
|
|
148
|
+
// advertiserID is no longer available to iOS from FBSDK v12
|
|
149
|
+
resolve(nil);
|
|
150
|
+
}
|
|
151
|
+
@catch (NSError *error) {
|
|
152
|
+
reject(@"E_ADVERTISER_ID_ERROR", @"Can not get advertiserID", error);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
RCT_EXPORT_METHOD(setUserData:(NSDictionary *)userData)
|
|
157
|
+
{
|
|
158
|
+
userData = RCTDictionaryWithoutNullValues(userData);
|
|
159
|
+
|
|
160
|
+
[FBSDKAppEvents.shared setUserEmail:userData[@"email"]
|
|
161
|
+
firstName:userData[@"firstName"]
|
|
162
|
+
lastName:userData[@"lastName"]
|
|
163
|
+
phone:userData[@"phone"]
|
|
164
|
+
dateOfBirth:userData[@"dateOfBirth"]
|
|
165
|
+
gender:userData[@"gender"]
|
|
166
|
+
city:userData[@"city"]
|
|
167
|
+
state:userData[@"state"]
|
|
168
|
+
zip:userData[@"zip"]
|
|
169
|
+
country:userData[@"country"]];
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
RCT_EXPORT_METHOD(setFlushBehavior:(FBSDKAppEventsFlushBehavior)flushBehavior)
|
|
173
|
+
{
|
|
174
|
+
[FBSDKAppEvents.shared setFlushBehavior:flushBehavior];
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
RCT_EXPORT_METHOD(flush)
|
|
178
|
+
{
|
|
179
|
+
[FBSDKAppEvents.shared flush];
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
RCT_EXPORT_METHOD(setPushNotificationsDeviceToken:(NSString *)deviceToken)
|
|
183
|
+
{
|
|
184
|
+
[FBSDKAppEvents.shared setPushNotificationsDeviceToken:[RCTConvert NSData:deviceToken]];
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
- (NSDictionary *)constantsToExport {
|
|
188
|
+
return @{
|
|
189
|
+
@"AppEvents": @{
|
|
190
|
+
@"AchievedLevel": FBSDKAppEventNameAchievedLevel,
|
|
191
|
+
@"AdClick": FBSDKAppEventNameAdClick,
|
|
192
|
+
@"AdImpression": FBSDKAppEventNameAdImpression,
|
|
193
|
+
@"AddedPaymentInfo": FBSDKAppEventNameAddedPaymentInfo,
|
|
194
|
+
@"AddedToCart": FBSDKAppEventNameAddedToCart,
|
|
195
|
+
@"AddedToWishlist": FBSDKAppEventNameAddedToWishlist,
|
|
196
|
+
@"CompletedRegistration": FBSDKAppEventNameCompletedRegistration,
|
|
197
|
+
@"CompletedTutorial": FBSDKAppEventNameCompletedTutorial,
|
|
198
|
+
@"Contact": FBSDKAppEventNameContact,
|
|
199
|
+
@"CustomizeProduct": FBSDKAppEventNameCustomizeProduct,
|
|
200
|
+
@"Donate": FBSDKAppEventNameDonate,
|
|
201
|
+
@"FindLocation": FBSDKAppEventNameFindLocation,
|
|
202
|
+
@"InitiatedCheckout": FBSDKAppEventNameInitiatedCheckout,
|
|
203
|
+
@"Purchased": FBSDKAppEventNamePurchased,
|
|
204
|
+
@"Rated": FBSDKAppEventNameRated,
|
|
205
|
+
@"Searched": FBSDKAppEventNameSearched,
|
|
206
|
+
@"SpentCredits": FBSDKAppEventNameSpentCredits,
|
|
207
|
+
@"Schedule": FBSDKAppEventNameSchedule,
|
|
208
|
+
@"StartTrial": FBSDKAppEventNameStartTrial,
|
|
209
|
+
@"SubmitApplication": FBSDKAppEventNameSubmitApplication,
|
|
210
|
+
@"Subscribe": FBSDKAppEventNameSubscribe,
|
|
211
|
+
@"UnlockedAchievement": FBSDKAppEventNameUnlockedAchievement,
|
|
212
|
+
@"ViewedContent": FBSDKAppEventNameViewedContent,
|
|
213
|
+
},
|
|
214
|
+
@"AppEventParams": @{
|
|
215
|
+
@"AddType": FBSDKAppEventParameterNameAdType,
|
|
216
|
+
@"Content": FBSDKAppEventParameterNameContent,
|
|
217
|
+
@"ContentID": FBSDKAppEventParameterNameContentID,
|
|
218
|
+
@"ContentType": FBSDKAppEventParameterNameContentType,
|
|
219
|
+
@"Currency": FBSDKAppEventParameterNameCurrency,
|
|
220
|
+
@"Description": FBSDKAppEventParameterNameDescription,
|
|
221
|
+
@"Level": FBSDKAppEventParameterNameLevel,
|
|
222
|
+
@"NumItems": FBSDKAppEventParameterNameNumItems,
|
|
223
|
+
@"MaxRatingValue": FBSDKAppEventParameterNameMaxRatingValue,
|
|
224
|
+
@"OrderId": FBSDKAppEventParameterNameOrderID,
|
|
225
|
+
@"PaymentInfoAvailable": FBSDKAppEventParameterNamePaymentInfoAvailable,
|
|
226
|
+
@"RegistrationMethod": FBSDKAppEventParameterNameRegistrationMethod,
|
|
227
|
+
@"SearchString": FBSDKAppEventParameterNameSearchString,
|
|
228
|
+
@"Success": FBSDKAppEventParameterNameSuccess,
|
|
229
|
+
@"ValueNo": FBSDKAppEventParameterValueNo,
|
|
230
|
+
@"ValueYes": FBSDKAppEventParameterValueYes,
|
|
231
|
+
}
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
+ (BOOL)requiresMainQueueSetup {
|
|
236
|
+
return YES;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
static NSDictionary<NSString *, id> *RCTDictionaryWithoutNullValues(NSDictionary<NSString *, id> *input)
|
|
240
|
+
{
|
|
241
|
+
if (input == nil) {
|
|
242
|
+
return nil;
|
|
243
|
+
}
|
|
244
|
+
NSMutableDictionary<NSString *, id> *result = [[NSMutableDictionary alloc] initWithCapacity:[input count]];
|
|
245
|
+
[input enumerateKeysAndObjectsUsingBlock:^(NSString *key, id item, __unused BOOL *stop) {
|
|
246
|
+
result[key] = RCTNilIfNull(item);
|
|
247
|
+
}];
|
|
248
|
+
return result;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
@end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// Copyright (c) 2015-present, Facebook, Inc. All rights reserved.
|
|
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 <React/RCTBridgeModule.h>
|
|
20
|
+
|
|
21
|
+
#import <FBSDKCoreKit/FBSDKCoreKit.h>
|
|
22
|
+
|
|
23
|
+
@interface RCTFBSDKAppLink : NSObject <RCTBridgeModule>
|
|
24
|
+
@end
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
// Copyright (c) 2015-present, Facebook, Inc. All rights reserved.
|
|
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 "RCTFBSDKAppLink.h"
|
|
20
|
+
|
|
21
|
+
#import <React/RCTUtils.h>
|
|
22
|
+
|
|
23
|
+
@implementation RCTFBSDKAppLink
|
|
24
|
+
|
|
25
|
+
RCT_EXPORT_MODULE(FBAppLink);
|
|
26
|
+
|
|
27
|
+
- (dispatch_queue_t)methodQueue
|
|
28
|
+
{
|
|
29
|
+
return dispatch_get_main_queue();
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
#pragma mark - React Native Methods
|
|
33
|
+
|
|
34
|
+
RCT_REMAP_METHOD(fetchDeferredAppLink,
|
|
35
|
+
resolver:(RCTPromiseResolveBlock)resolve
|
|
36
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
37
|
+
{
|
|
38
|
+
[FBSDKAppLinkUtility fetchDeferredAppLink:^(NSURL *url, NSError *error) {
|
|
39
|
+
if (error) {
|
|
40
|
+
NSLog(@"Received error while fetching deferred app link %@", error);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
if (url) {
|
|
44
|
+
NSString* appLink = [NSString stringWithFormat:@"%@", url];
|
|
45
|
+
resolve(appLink);
|
|
46
|
+
}else{
|
|
47
|
+
resolve(nil);
|
|
48
|
+
}
|
|
49
|
+
}];
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
@end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
#import "RCTFBSDKAuthenticationToken.h"
|
|
2
|
+
|
|
3
|
+
#import <React/RCTUtils.h>
|
|
4
|
+
|
|
5
|
+
@implementation RCTFBSDKAuthenticationToken
|
|
6
|
+
|
|
7
|
+
RCT_EXPORT_MODULE(FBAuthenticationToken);
|
|
8
|
+
|
|
9
|
+
- (dispatch_queue_t)methodQueue
|
|
10
|
+
{
|
|
11
|
+
return dispatch_get_main_queue();
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
RCT_EXPORT_METHOD(getAuthenticationToken:(RCTResponseSenderBlock)callback)
|
|
15
|
+
{
|
|
16
|
+
FBSDKAuthenticationToken *currentToken = [FBSDKAuthenticationToken currentAuthenticationToken];
|
|
17
|
+
NSDictionary *tokenDict = RCTBuildAccessTokenDict(currentToken);
|
|
18
|
+
callback(@[RCTNullIfNil(tokenDict)]);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
#pragma mark - Helper Functions
|
|
22
|
+
|
|
23
|
+
static NSDictionary *RCTBuildAccessTokenDict(FBSDKAuthenticationToken *token)
|
|
24
|
+
{
|
|
25
|
+
if (!token) {
|
|
26
|
+
return nil;
|
|
27
|
+
}
|
|
28
|
+
return @{
|
|
29
|
+
@"authenticationToken": token.tokenString,
|
|
30
|
+
@"nonce": token.nonce,
|
|
31
|
+
@"graphDomain": token.graphDomain,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
@end
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// Copyright (c) 2015-present, Facebook, Inc. All rights reserved.
|
|
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 <React/RCTBridgeModule.h>
|
|
20
|
+
|
|
21
|
+
#import <FBSDKCoreKit/FBSDKCoreKit.h>
|
|
22
|
+
#import <Foundation/Foundation.h>
|
|
23
|
+
|
|
24
|
+
/*!
|
|
25
|
+
@abstract A RCTFBSDKGraphRequestConnectionContainer object can take in a batch of
|
|
26
|
+
graph requests, send the requests in a graph request connection and return the responses of
|
|
27
|
+
the requests in a connection callback.
|
|
28
|
+
Note that the oject has a speical life cycle. It retains itself once the `start` method is called.
|
|
29
|
+
This is because the object needs to live long enough to forward along callbacks from each request.
|
|
30
|
+
It will release itself when all callbacks are handled.
|
|
31
|
+
*/
|
|
32
|
+
@interface RCTFBSDKGraphRequestConnectionContainer : NSObject<FBSDKGraphRequestConnectionDelegate>
|
|
33
|
+
|
|
34
|
+
/*!
|
|
35
|
+
@abstract Initialize the RCTFBSDKGraphRequestConnectionContainer object.
|
|
36
|
+
@param requestBatch The batch of requests to be sent
|
|
37
|
+
@param timeout The timeout interval to wait for a response before giving up
|
|
38
|
+
@param callback The connection callback to be invoked when the connection is completed.
|
|
39
|
+
This callback will carry the responses of requests back to javascript.
|
|
40
|
+
*/
|
|
41
|
+
- (instancetype)initWithRequestBatch:(NSArray *)requestBatch
|
|
42
|
+
timeout:(NSInteger)timeout
|
|
43
|
+
batchCallback:(RCTResponseSenderBlock)callback;
|
|
44
|
+
|
|
45
|
+
/*!
|
|
46
|
+
@abstract Send the batch of requests via a FBSDKGraphRequestConnection.
|
|
47
|
+
*/
|
|
48
|
+
- (void)start;
|
|
49
|
+
|
|
50
|
+
@end
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
// Copyright (c) 2015-present, Facebook, Inc. All rights reserved.
|
|
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 "RCTFBSDKGraphRequestConnectionContainer.h"
|
|
20
|
+
|
|
21
|
+
#import <React/RCTConvert.h>
|
|
22
|
+
#import <React/RCTUtils.h>
|
|
23
|
+
|
|
24
|
+
#pragma mark - Helper Functions
|
|
25
|
+
|
|
26
|
+
static NSMutableArray *g_pendingConnection;
|
|
27
|
+
|
|
28
|
+
static NSDictionary *RCTPrepareParameters(NSDictionary *parameters)
|
|
29
|
+
{
|
|
30
|
+
NSMutableDictionary *preparedParameters = [[NSMutableDictionary alloc] init];
|
|
31
|
+
for (NSString *key in parameters.allKeys) {
|
|
32
|
+
NSDictionary *object = [RCTConvert NSDictionary:parameters[key]];
|
|
33
|
+
preparedParameters[key] = [RCTConvert NSString:object[@"string"]];
|
|
34
|
+
}
|
|
35
|
+
return preparedParameters;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
static NSArray<FBSDKGraphRequest *> *FBSDKGraphRequestArray(id json)
|
|
39
|
+
{
|
|
40
|
+
NSArray *requestArray = [RCTConvert NSArray:json];
|
|
41
|
+
NSMutableArray *requests = [[NSMutableArray alloc] init];
|
|
42
|
+
for(int i = 0; i < [requestArray count]; i++) {
|
|
43
|
+
NSDictionary *requestDict = [RCTConvert NSDictionary:requestArray[i]];
|
|
44
|
+
NSDictionary *config = [RCTConvert NSDictionary:requestDict[@"config"]];
|
|
45
|
+
NSString *tokenString = [RCTConvert NSString:config[@"accessToken"]]?: [FBSDKAccessToken currentAccessToken].tokenString;
|
|
46
|
+
NSDictionary *parameters = RCTPrepareParameters([RCTConvert NSDictionary:config[@"parameters"]]);
|
|
47
|
+
NSString *version = [RCTConvert NSString:config[@"version"]];
|
|
48
|
+
NSString *method = [RCTConvert NSString:config[@"httpMethod"]];
|
|
49
|
+
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc] initWithGraphPath:[RCTConvert NSString:(requestDict[@"graphPath"])]
|
|
50
|
+
parameters:parameters
|
|
51
|
+
tokenString:tokenString
|
|
52
|
+
version:version
|
|
53
|
+
HTTPMethod:method];
|
|
54
|
+
[requests addObject:request];
|
|
55
|
+
}
|
|
56
|
+
return requests;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
#pragma mark - RCTFBSDKGraphRequestConnectionContainer
|
|
60
|
+
|
|
61
|
+
@implementation RCTFBSDKGraphRequestConnectionContainer
|
|
62
|
+
{
|
|
63
|
+
NSArray<FBSDKGraphRequest *> *_requestBatch;
|
|
64
|
+
RCTResponseSenderBlock _batchCallback;
|
|
65
|
+
NSInteger _timeout;
|
|
66
|
+
FBSDKGraphRequestConnection *_connection;
|
|
67
|
+
NSMutableDictionary *_response;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
- (dispatch_queue_t)methodQueue
|
|
71
|
+
{
|
|
72
|
+
return dispatch_get_main_queue();
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
#pragma mark - Object Lifecycle
|
|
76
|
+
- (instancetype)initWithRequestBatch:(NSArray *)requestBatch
|
|
77
|
+
timeout:(NSInteger)timeout
|
|
78
|
+
batchCallback:(RCTResponseSenderBlock)callback
|
|
79
|
+
{
|
|
80
|
+
if ((self = [super init])) {
|
|
81
|
+
_connection = [[FBSDKGraphRequestConnection alloc] init];
|
|
82
|
+
_connection.delegate = self;
|
|
83
|
+
_requestBatch = FBSDKGraphRequestArray(requestBatch);
|
|
84
|
+
_batchCallback = callback;
|
|
85
|
+
_timeout = timeout;
|
|
86
|
+
_response = [[NSMutableDictionary alloc] init];
|
|
87
|
+
}
|
|
88
|
+
return self;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
- (void)start
|
|
92
|
+
{
|
|
93
|
+
g_pendingConnection = [[NSMutableArray alloc] init];
|
|
94
|
+
[g_pendingConnection addObject:self];
|
|
95
|
+
for (int i = 0; i < _requestBatch.count; i++) {
|
|
96
|
+
FBSDKGraphRequestCompletion completion = ^(id<FBSDKGraphRequestConnecting> connection, id result, NSError *error) {
|
|
97
|
+
NSDictionary *errorDict = error ? RCTJSErrorFromNSError(error) : nil;
|
|
98
|
+
self->_response[[NSString stringWithFormat: @"%i", i]] = @[RCTNullIfNil(errorDict), RCTNullIfNil(result)];
|
|
99
|
+
};
|
|
100
|
+
[_connection addRequest:_requestBatch[i] completion:completion];
|
|
101
|
+
}
|
|
102
|
+
[_connection start];
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
#pragma mark - FBSDKGraphRequestConnectionDelegate
|
|
106
|
+
|
|
107
|
+
- (void)requestConnectionDidFinishLoading:(FBSDKGraphRequestConnection *)connection
|
|
108
|
+
{
|
|
109
|
+
if (_batchCallback) {
|
|
110
|
+
_batchCallback(@[[NSNull null], @{@"result": @"success"}, _response]);
|
|
111
|
+
}
|
|
112
|
+
[g_pendingConnection removeObject:self];
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
- (void)requestConnection:(FBSDKGraphRequestConnection *)connection didFailWithError:(NSError *)error
|
|
116
|
+
{
|
|
117
|
+
if (_batchCallback) {
|
|
118
|
+
NSDictionary *errorDict = error ? RCTJSErrorFromNSError(error) : nil;
|
|
119
|
+
_batchCallback(@[@[RCTNullIfNil(errorDict)], [NSNull null], _response]);
|
|
120
|
+
}
|
|
121
|
+
[g_pendingConnection removeObject:self];
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
@end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// Copyright (c) 2015-present, Facebook, Inc. All rights reserved.
|
|
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 <React/RCTBridgeModule.h>
|
|
20
|
+
|
|
21
|
+
#import <FBSDKCoreKit/FBSDKCoreKit.h>
|
|
22
|
+
|
|
23
|
+
@interface RCTFBSDKGraphRequestManager : NSObject <RCTBridgeModule>
|
|
24
|
+
|
|
25
|
+
@end
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// Copyright (c) 2015-present, Facebook, Inc. All rights reserved.
|
|
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
|
+
#import "RCTFBSDKGraphRequestManager.h"
|
|
19
|
+
#import "RCTFBSDKGraphRequestConnectionContainer.h"
|
|
20
|
+
|
|
21
|
+
@implementation RCTFBSDKGraphRequestManager
|
|
22
|
+
|
|
23
|
+
RCT_EXPORT_MODULE(FBGraphRequest);
|
|
24
|
+
|
|
25
|
+
- (dispatch_queue_t)methodQueue
|
|
26
|
+
{
|
|
27
|
+
return dispatch_get_main_queue();
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
#pragma mark - React Native Methods
|
|
31
|
+
|
|
32
|
+
RCT_REMAP_METHOD(start, startWithBatch:(NSArray *)requestBatch
|
|
33
|
+
timeout:(nonnull NSNumber *)timeout
|
|
34
|
+
batchCallback:(RCTResponseSenderBlock)callback)
|
|
35
|
+
{
|
|
36
|
+
RCTFBSDKGraphRequestConnectionContainer *connection =
|
|
37
|
+
[[RCTFBSDKGraphRequestConnectionContainer alloc] initWithRequestBatch:requestBatch
|
|
38
|
+
timeout:[timeout integerValue]
|
|
39
|
+
batchCallback:callback];
|
|
40
|
+
[connection start];
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
@end
|