@@ -9,6 +9,7 @@ var logManager = require('../sdk_log');
9
9
var loginManager = require ( '../sdk_login' ) ;
10
10
var config = require ( '../sdk_config' ) ;
11
11
var sdkTool = require ( '../sdk_tool' ) ;
12
+ var bi = require ( '../sdk_bi' ) ;
12
13
13
14
var FBSDK = function ( ) {
14
15
// 广告模块
@@ -24,6 +25,67 @@ var FBSDK = function () {
24
25
this . _initRewardVideoAd ( ) ;
25
26
} ;
26
27
28
+ FBSDK . prototype . onLaunch = function ( ) {
29
+ if ( FBSDK . isInited ) {
30
+ return ;
31
+ } else {
32
+ FBSDK . isInited = true ;
33
+ }
34
+
35
+ //运行场景上下文, POST - A facebook post. THREAD - A messenger thread. GROUP - A facebook group. SOLO - Default context
36
+ var contextType = FBInstant . context . getType ( ) ;
37
+ //启动参数元数据,可能为null
38
+ var entryPointData = FBInstant . getEntryPointData ( ) || { } ;
39
+
40
+ FBInstant . getEntryPointAsync ( ) . then ( ( entrypoint ) => {
41
+ logManager . LOGD ( 'getEntryPointAsync successful ' + entrypoint ) ;
42
+
43
+ //类似于微信小游戏的进入的场景参数
44
+ // game_switch (游戏切换启动) *
45
+ // other (本地调试启动) *
46
+ // game_composer (pc版messenger中启动)
47
+ // games_hub (客户端messenger中启动)
48
+ // admin_message (Game plays coming from a custom update within a messenger thread) custom update updateAsync
49
+ // bookmark (来自Facebook 游戏列表中的书签界面)
50
+ // bot_cta (Game plays that began from a call-to-action attached to a Messenger bot message) *
51
+ // bot_menu (Game plays that began from a Messenger bot menu)
52
+ // custom_share (Game plays started from custom shares created by the game with the share API)
53
+ // facebook_web (Game plays started from the Facebook front page on web)
54
+ // feed (Game plays started from a Facebook feed)
55
+ // game_cta (Game plays that began from various call-to-action buttons on Messenger and Facebook)
56
+ // game_search (Game plays coming from players searching in Messenger and Facebook search)
57
+ // game_share (Game plays started from a generic player share of the Instant Game)
58
+ // gameroom (Game plays coming from Facebook Gameroom)
59
+ // group (Game plays that started from an entry point in a Facebook group)
60
+ // home_screen_shortcut (Game plays coming from our Home Screen Shortcuts API (Android Only))
61
+ // menu (Game plays coming from a Messenger menu)
62
+ // notification (Game plays initiated by a player engaging with a Facebook notification)
63
+ // shareable_link (Game plays that began from a deep link to the game (such as our Instant Game “m.me” links))
64
+ // score_share (Game plays that started from a played-shared score)
65
+ // video_call (Game plays coming from the Messenger video chat entry point)
66
+ // web_games_hub (Game plays started from the Instant Games hub on web, located here)
67
+
68
+ var event_param = entryPointData ;
69
+ if ( ! event_param . from_type ) {
70
+ event_param . from_type = 'normal' ;
71
+ event_param . from_param = '' ;
72
+ }
73
+ event_param . entrypoint = entryPoint ;
74
+ event_param . fb_id = FBInstant . player . getID ( ) . toString ( ) ;
75
+ event_param . contextType = contextType ;
76
+
77
+ config . UserInfo . scene_id = entryPoint ;
78
+ config . UserInfo . scene_param = event_param ;
79
+ config . UserInfo . device_id = sdkTool . uuidTo32 ( FBInstant . player . getID ( ) ) ;
80
+
81
+ bi . innerSendEvent ( bi . ENUM . ON_LAUNCH , event_param ) ;
82
+
83
+ } ) . catch ( ( err ) => {
84
+ logManager . LOGD ( 'getEntryPointAsync fail ' + JSON . stringify ( err ) ) ;
85
+
86
+ } ) ;
87
+ } ;
88
+
27
89
/***** 广告模块 *****/
28
90
29
91
FBSDK . prototype . _initInterstitial = function ( ) {
@@ -109,6 +171,20 @@ FBSDK.prototype.showAdsWithPolicy = function (successCallback, failureCallback)
109
171
* extraInfo: 扩展信息
110
172
*/
111
173
FBSDK . prototype . shareToTimeline = function ( title , imageUrl , extraInfo , successCallback , failureCallback ) {
174
+ // bi打点信息
175
+ var extData = {
176
+ 'from_type' : 'share' ,
177
+ 'share_type' : 'indirect' ,
178
+ 'share_uuid' : config . UserInfo . uuid . toString ( ) ,
179
+ 'from_user_id' : config . UserInfo . userId . toString ( ) ,
180
+ 'from_fb_id' : config . UserInfo . playerId . toString ( ) ,
181
+ 'fb_id' : config . UserInfo . playerId . toString ( ) ,
182
+ 'share_point_id' : extraInfo . sharePointId ,
183
+ 'share_scheme_id' : extraInfo . shareSchemeId
184
+ } ;
185
+
186
+ bi . innerSendEvent ( bi . ENUM . FB_SHARE_SYNC , extData ) ;
187
+
112
188
sdkTool . getBase64Image ( imageUrl , ( imageBase64 ) => {
113
189
logManager . LOGD ( 'get base64 image result ' + imageBase64 ) ;
114
190
@@ -136,12 +212,30 @@ FBSDK.prototype.shareToTimeline = function (title, imageUrl, extraInfo, successC
136
212
* type: 分享类型,'friend':分享给好友 'group':分享到群
137
213
*/
138
214
FBSDK . prototype . shareToFriend = function ( type , title , imageUrl , extraInfo , successCallback , failureCallback ) {
215
+ // bi打点信息
216
+ var extData = {
217
+ 'from_type' : 'share' ,
218
+ 'share_type' : type ,
219
+ 'share_uuid' : config . UserInfo . uuid . toString ( ) ,
220
+ 'from_user_id' : config . UserInfo . userId . toString ( ) ,
221
+ 'from_fb_id' : config . UserInfo . playerId . toString ( ) ,
222
+ 'fb_id' : config . UserInfo . playerId . toString ( ) ,
223
+ 'share_point_id' : extraInfo . sharePointId ,
224
+ 'share_scheme_id' : extraInfo . shareSchemeId
225
+ } ;
226
+
227
+ var eventId = type === 'friend' ? bi . ENUM . FB_SHARE_FRIEND : bi . ENUM . FB_SHARE_GROUP ;
228
+ bi . innerSendEvent ( eventId , extData ) ;
229
+
139
230
sdkTool . getBase64Image ( imageUrl , ( imageBase64 ) => {
140
231
FBInstant . context . chooseAsync ( {
141
232
'minSize' : type === 'friend' ? 0 : 3
142
233
} ) . then ( ( ret ) => {
143
234
logManager . LOGD ( 'shareToFriend successful ' + JSON . stringify ( ret ) ) ;
144
235
236
+ var eventId = type === 'friend' ? bi . ENUM . FB_SHARE_FRIEND_SUCCESS : bi . ENUM . FB_SHARE_GROUP_SUCCESS ;
237
+ bi . innerSendEvent ( eventId , extData ) ;
238
+
145
239
successCallback && successCallback ( extraInfo ) ;
146
240
147
241
FBInstant . updateAsync ( {
@@ -167,6 +261,9 @@ FBSDK.prototype.shareToFriend = function (type, title, imageUrl, extraInfo, succ
167
261
} ) . catch ( ( err ) => {
168
262
logManager . LOGD ( 'shareToFriend error ' + JSON . stringify ( err ) ) ;
169
263
264
+ var eventId = type === 'friend' ? bi . ENUM . FB_SHARE_FRIEND_FAIL : bi . ENUM . FB_SHARE_GROUP_FAIL ;
265
+ bi . innerSendEvent ( eventId , extData ) ;
266
+
170
267
failureCallback && failureCallback ( extraInfo ) ;
171
268
} ) ;
172
269
} ) ;
@@ -175,9 +272,17 @@ FBSDK.prototype.shareToFriend = function (type, title, imageUrl, extraInfo, succ
175
272
/***** 登录模块 *****/
176
273
177
274
FBSDK . prototype . loginBySnsId = function ( successCallback , failureCallback ) {
275
+ bi . innerSendEvent ( bi . ENUM . GET_FB_PLAYER_INFO_START , config . UserInfo . scene_param ) ;
276
+
178
277
FBInstant . player . getSignedPlayerInfoAsync ( 'my_metadata' ) . then ( ( result ) => {
179
278
logManager . LOGD ( 'FBInstant.getSignedPlayerInfoAsync successful ' + JSON . stringify ( result ) ) ;
180
279
280
+ bi . innerSendEvent ( bi . ENUM . GET_FB_PLAYER_INFO_SUCCESS , config . UserInfo . scene_param ) ;
281
+
282
+ // 初始化一些配置信息
283
+ config . UserInfo . playerId = result . getPlayerID ( ) ;
284
+ config . UserInfo . device_id = sdkTool . uuidTo32 ( FBInstant . player . getID ( ) ) ;
285
+
181
286
return loginManager . loginBySnsIdNoVerify ( result . getPlayerID ( ) , {
182
287
'snsId' : 'fbinstant:' + result . getPlayerID ( ) ,
183
288
'name' : FBInstant . player . getName ( ) ,
@@ -192,6 +297,8 @@ FBSDK.prototype.loginBySnsId = function (successCallback, failureCallback) {
192
297
} ) . catch ( ( err ) => {
193
298
logManager . LOGD ( 'FBSDK.loginBySnsId error ' + JSON . stringify ( err ) ) ;
194
299
300
+ bi . innerSendEvent ( bi . ENUM . GET_FB_PLAYER_INFO_FAIL , config . UserInfo . scene_param ) ;
301
+
195
302
failureCallback ( ) ;
196
303
} ) ;
197
304
} ;
0 commit comments