本發(fā)明涉及網絡技術領域,特別是涉及一種共享資源處理方法和裝置。
背景技術:
共享資源是指將資源通過社交應用進行共享的動作,資源承受用戶則需要對共享的資源進行相應的操作來獲得相應的資源。隨著終端配置的不斷升級,目前終端上可以完成的資源共享操作的種類也不斷增加。其中共享資源比如發(fā)送虛擬紅包、分享積分或者分享電子代金券等,其中虛擬紅包的數值、分享的積分以及電子代金券的數值等都是資源。
資源承受用戶需要對通過社交應用共享的資源進行操作來獲得相應的資源,但資源共享的發(fā)生對資源承受用戶來說是不可預期的,一直等待資源被共享時間成本太高,因此衍生出可自動獲取共享的資源的輔助應用程序。通過這種輔助應用程序,可以模擬用戶的操作,在社交應用中發(fā)生資源共享時可以自動獲取到共享的資源。比如輔助應用程序可以檢測系統(tǒng)通知欄中出現的屬于社交應用的消息,從而定位到相應聯(lián)系人的會話頁面,對共享的資源進行操作從而使用戶獲得相應的資源。
然而,目前自動獲取共享的資源的輔助應用程序,要求必須開啟系統(tǒng)通知欄通知功能,而且社交應用本身必須通過系統(tǒng)通知欄進行通知,否則輔助應用程序就無法檢測到共享的資源,也無法自動獲取到共享的資源。因此目前通過輔助應用程序自動獲取共享的資源的方式使用場景受限,而且實際應用時獲取資源的效率也不高。
技術實現要素:
基于此,有必要針對目前通過輔助應用程序自動獲取共享的資源的方式使用場景受限且效率低的問題,提供一種共享資源處理方法和裝置。
一種共享資源處理方法,所述方法包括:
將預設代碼注入社交應用的進程中;
通過所述進程中的所述預設代碼獲取社交會話中產生的消息;
若獲取到的消息是資源共享消息,則
獲取所述消息中的資源標識;
根據當前登錄所述社交應用的用戶標識和所述資源標識生成資源獲取請求;
向所述社交應用所屬的社交應用服務器發(fā)送所述資源獲取請求,使所述社交應用服務器為所述用戶標識分配所述資源標識對應的資源。
一種共享資源處理裝置,所述裝置包括:
代碼注入模塊,用于將預設代碼注入社交應用的進程中;
消息獲取模塊,用于通過所述進程中的所述預設代碼獲取社交會話中產生的消息;
消息解析模塊,用于若獲取到的消息是資源共享消息,則獲取所述消息中的資源標識;
請求生成模塊,用于根據當前登錄所述社交應用的用戶標識和所述資源標識生成資源獲取請求;
請求發(fā)送模塊,用于向所述社交應用所屬的社交應用服務器發(fā)送所述資源獲取請求,使所述社交應用服務器為所述用戶標識分配所述資源標識對應的資源。
上述共享資源處理方法和裝置,將預設代碼注入社交應用的進程中,就可以通過預設代碼在該進程中獲取社交應用中產生的消息,如果是資源共享消息,便可以解析獲得資源標識并與用戶標識結合生成資源獲取請求。通過社交應用的進程將資源獲取請求發(fā)送至社交應用服務器,就可以使得社交應用服務器自動為用戶標識分配資源標識對應的資源。通過社交應用本身的進程就可以自動地獲取共享的資源,與是否開啟系統(tǒng)通知欄通知功能無關,使用場景不受系統(tǒng)通知欄通知功能的限制,而且通過進程本身來獲取共享的資源也比通過檢測系 統(tǒng)通知欄的消息來獲取共享的資源效率更高。
附圖說明
圖1為一個實施例中共享資源處理系統(tǒng)的應用環(huán)境圖;
圖2為一個實施例中用于實現共享資源處理方法的終端的結構示意圖;
圖3為一個實施例中共享資源處理方法的流程示意圖;
圖4為一個實施例中將預設代碼注入社交應用的進程中的步驟的流程示意圖;
圖5為一個實施例中獲取資源分配結果并進行展示的步驟的流程示意圖;
圖6為一個實施例中輔助應用提供的統(tǒng)計頁面的示意圖;
圖7為一個實施例中根據社交應用的版本信息自適應配置預設代碼的步驟的流程示意圖;
圖8為一個具體應用場景中共享資源處理方法的流程示意圖;
圖9為一個實施例中共享資源處理裝置的結構框圖;
圖10為一個實施例中共享資源處理裝置的代碼注入模塊的結構框圖;
圖11為另一個實施例中共享資源處理裝置的結構框圖;
圖12為再一個實施例中共享資源處理裝置的結構框圖;
圖13為一個實施例中共享資源處理裝置的結構框圖。
具體實施方式
為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
如圖1所示,在一個實施例中,提供了一種共享資源處理系統(tǒng),包括終端101、社交應用服務器102和輔助應用服務器103。終端101可通過網絡連接到社交應用服務器102和輔助應用服務器103。終端101上運行有社交應用和輔助應用,社交應用和輔助應用是不同的應用程序。終端101可通過社交應用與社交應用服務器通信,還可通過輔助應用與輔助應用服務器通信。
如圖2所示,在一個實施例中,提供了一種用于實現共享資源處理方法的終端101,包括通過系統(tǒng)總線連接的處理器、非易失性存儲介質、內存儲器、網絡接口、顯示屏以及輸入裝置。其中處理器具有計算功能和控制終端101工作的功能,該處理器被配置為執(zhí)行一種共享資源處理方法。非易失性存儲介質包括磁存儲介質、光存儲介質和閃存式存儲介質中的至少一種,非易失性存儲介質存儲有操作系統(tǒng)和共享資源處理裝置。該共享資源處理裝置用于實現一種共享資源處理方法。網絡接口用于連接到網絡與社交應用服務器102或者輔助應用服務器103通信。顯示屏包括液晶顯示屏、柔性顯示屏和電子墨水顯示屏中的至少一種。輸入裝置包括物理按鈕、軌跡球、觸控板以及與顯示屏重疊的觸控層中的至少一種,其中觸控層與顯示屏組合形成觸控屏。
如圖3所示,在一個實施例中,提供了一種共享資源處理方法,本實施例以該方法應用于上述圖1和圖2中共享資源處理系統(tǒng)中的終端101來舉例說明。該方法具體包括如下步驟:
步驟302,將預設代碼注入社交應用的進程中。
具體地,預設代碼是預先編寫的用于實現共享資源處理方法的代碼,可以采用C語言或者C++語言編寫。注入是指在進程中加入可執(zhí)行的代碼的過程,注入可以是遠程注入,是指在一個進程中通過調用遠程注入系統(tǒng)函數在另一個進程中加入可執(zhí)行的代碼的過程。在不同的操作系統(tǒng)下可使用不同的遠程注入系統(tǒng)函數實現遠程注入,比如在Android(安卓)操作系統(tǒng)下可使用遠程注入系統(tǒng)函數ptrace()實現遠程注入,在Solaris操作系統(tǒng)下可使用遠程注入系統(tǒng)函數dtrace()實現遠程注入,在Mac操作系統(tǒng)下可使用遠程注入系統(tǒng)函數dtruss()實現遠程注入。社交應用通常具有聯(lián)系人查找功能以及即時通信功能,還可以具有UGC(User Generated Content,用戶生成內容)分享功能以及UGC評論功能。
步驟304,通過進程中的預設代碼獲取社交會話中產生的消息。
具體地,終端通過社交應用的進程執(zhí)行預設代碼,通過該預設代碼的邏輯,獲取在社交應用中的社交會話中產生的消息。社交會話是指用戶與聯(lián)系人之間的用來交互消息的會話。聯(lián)系人可以是網絡社交好友、群組成員、企業(yè)賬號或者陌生人,陌生人是指與當前用戶未建立網絡社交關系的用戶。
社交會話可以是一對一的雙人會話,也可以是群組會話。雙人會話可以發(fā)起自用戶與聯(lián)系人中的任意一方,群組會話可以發(fā)起自相應群組中的任意群組成員,用戶與聯(lián)系人都存在于該群組中。群組可以是即時通信群組、臨時建立的討論組或者基于已有的群組而建立的討論組等。
社交會話中產生的消息可以是用戶發(fā)送的消息,也可以是來自于用戶的聯(lián)系人的消息,還可以是系統(tǒng)消息。消息可以是即時編輯產生的,也可以是轉發(fā)的消息。
步驟306,若獲取到的消息是資源共享消息,則獲取消息中的資源標識。
具體地,消息是結構化消息,包括若干字段,至少包括消息類型字段和消息內容字段,消息內容字段的數據中包括資源標識。終端通過進程中的預設代碼獲取到消息后,調用預設代碼所指定的消息解析接口來解析該消息獲得消息類型字段的數據,根據消息類型字段的數據判斷該消息是否為資源共享消息。若是資源共享消息,則終端通過進程中的預設代碼獲取消息中的資源標識;若不是資源共享消息,則進程中的預設代碼停止對該消息的處理。進程本身也會按照進程本身的邏輯處理消息,比如解析消息獲得消息內容并展示等,不被預設代碼的邏輯所影響。
在一個實施例中,步驟306包括:若獲取到的消息是資源共享消息,且資源標識對應的資源所屬的資源共享用戶被配置為允許獲取所共享的資源,則獲取消息中的資源標識。
具體地,終端通過進程中的預設代碼解析消息獲得消息類型字段的數據和資源共享用戶字段的數據,從而根據消息類型字段的數據判定消息是資源共享消息,根據資源共享用戶字段的數據判定相應的資源共享用戶被配置為允許獲取該資源共享用戶所共享的資源,則獲取消息中的資源標識以及執(zhí)行后續(xù)的步驟308和310。
其中資源共享用戶被配置為允許獲取所共享的資源,可以是相應的資源共享用戶存在于允許獲取其所共享的資源的用戶列表中,和/或相應的資源共享用戶不存在于禁止獲取其所共享的資源的用戶列表中。資源共享用戶是指發(fā)起資源共享的用戶或者轉發(fā)共享的資源的用戶,當前終端的用戶為資源承受方用戶, 資源共享用戶與資源承受用戶可以是同一用戶。
本實施例中,用戶可以配置允許或者不允許獲取特定用戶所共享的資源,從而可以靈活地調整獲取資源的策略。
步驟308,根據當前登錄所述社交應用的用戶標識和資源標識生成資源獲取請求。
具體地,終端通過進程中的預設代碼調用預設代碼所指定的資源獲取請求生成接口來根據當前登錄所述社交應用的用戶標識和資源標識生成資源獲取請求。用戶標識是唯一表示用戶的字符串,用戶標識可以包括數字、字母以及標點符號中的至少一種。用戶標識可以是登錄社交應用的用戶賬號。終端通過進程中的預設代碼根據當前登錄所述社交應用的用戶標識和資源標識生成資源獲取請求時,可對用戶標識和資源標識進行加密,此時資源獲取請求就是一串加密的字符串。
步驟310,向社交應用所屬的社交應用服務器發(fā)送資源獲取請求,使社交應用服務器為用戶標識分配資源標識對應的資源。
具體地,社交應用服務器是社交應用的服務器,終端通過進程的預設代碼調用預設代碼所指定的通信接口與社交應用服務器進行通信,以向社交應用所屬的社交應用服務器發(fā)送資源獲取請求。社交應用服務器從資源獲取請求中提取用戶標識和資源標識,從而為用戶標識分配該資源標識對應的資源。在分配資源使可將資源標識對應的全部資源或者部分資源分配給用戶標識。資源標識對應的資源可以是數值資源,比如虛擬紅包的數值資源。
上述共享資源處理方法,將預設代碼注入社交應用的進程中,就可以通過預設代碼在該進程中獲取社交應用中產生的消息,如果是資源共享消息,便可以解析獲得資源標識并與用戶標識結合生成資源獲取請求。通過社交應用的進程將資源獲取請求發(fā)送至社交應用服務器,就可以使得社交應用服務器自動為用戶標識分配資源標識對應的資源。通過社交應用本身的進程就可以自動地獲取共享的資源,與是否開啟系統(tǒng)通知欄通知功能無關,使用場景不受系統(tǒng)通知欄通知功能的限制,而且通過進程本身來獲取共享的資源也比通過檢測系統(tǒng)通知欄的消息來獲取共享的資源效率更高。
如圖4所示,在一個實施例中,步驟302具體包括如下步驟:
步驟402,遠程調用社交應用的進程的用于分配存儲空間的系統(tǒng)調用函數以分配存儲空間,并在存儲空間中寫入動態(tài)鏈接庫的路徑。
具體地,終端可通過輔助應用獲取社交應用的進程標識(PID),從而通過該進程標識連接到社交應用的進程。終端通過輔助應用獲取進程的寄存器值并保存,以便完成注入后恢復進程原有的狀態(tài)。終端通過輔助應用獲取進程的用于分配存儲空間的系統(tǒng)調用函數(mmap)的調用地址、用于加載動態(tài)鏈接庫的系統(tǒng)調用函數(dlopen)的調用地址以及用于操作動態(tài)鏈接庫的系統(tǒng)調用函數(dlsym)的調用地址。從而根據進程的用于分配存儲空間的系統(tǒng)調用函數的調用地址調用相應的系統(tǒng)調用函數(mmap)來分配一段存儲空間,并在分配的存儲空間中寫入動態(tài)鏈接庫(SO)的路徑以及函數調用參數,該動態(tài)鏈接庫是需要注入的預設代碼。
步驟404,遠程調用進程的用于加載動態(tài)鏈接庫的系統(tǒng)調用函數以根據路徑加載動態(tài)鏈接庫。
具體地,終端通過輔助應用根據用于加載動態(tài)鏈接庫的系統(tǒng)調用函數的調用地址調用相應的系統(tǒng)調用函數(dlopen),以根據存儲空間中寫入的路徑加載相應的動態(tài)鏈接庫。
步驟406,遠程調用進程的用于操作動態(tài)鏈接庫的系統(tǒng)調用函數獲取動態(tài)鏈接庫中用于處理共享資源的函數的函數地址。
具體地,終端通過輔助應用根據用于操作動態(tài)鏈接庫的系統(tǒng)調用函數的調用地址調用相應的系統(tǒng)調用函數(dlsym),以根據存儲空間中寫入的函數調用參數從加載的動態(tài)鏈接庫中獲取函數地址。
步驟408,根據獲取的函數地址執(zhí)行相應的函數。
具體地,獲取的函數地址的函數用于處理共享資源,主要用于獲取社交會話中產生的消息;若獲取到的消息是資源共享消息,則獲取消息中的資源標識;根據當前登錄所述社交應用的用戶標識和資源標識生成資源獲取請求;向社交應用所屬的社交應用服務器發(fā)送資源獲取請求,使社交應用服務器為用戶標識分配資源標識對應的資源。
本實施例中,通過遠程注入的方式向社交應用的進程注入動態(tài)鏈接庫以執(zhí)行動態(tài)鏈接庫中的相應函數,從而使得進程可以在獲取到資源共享消息后自動地處理資源共享消息。
如圖5所示,在一個實施例中,預設代碼通過輔助應用被注入社交應用的進程中;該共享資源處理方法還包括獲取資源分配結果并進行展示的步驟,具體包括如下步驟:
步驟502,通過進程接收社交應用服務器反饋的資源分配結果。
具體地,社交應用服務器根據資源獲取請求進行資源分配的處理后,會向終端反饋資源分配結果。資源分配結果包括資源分配成功的結果和資源分配失敗的結果。
步驟504,通過輔助應用獲取來自于進程的資源分配結果。
具體地,終端可通過輔助應用主動通過進程中的預設代碼所提供的接口獲取應用服務器所反饋的資源分配結果,也可以被動地接收進程通過其中的預設代碼向輔助應用傳遞的資源分配結果。
步驟506,展示資源分配結果,和/或,根據獲取的資源分配結果進行統(tǒng)計后展示統(tǒng)計結果。
終端可通過輔助應用展示資源分配結果,具體可通過系統(tǒng)通知欄的通知消息展示資源分配結果,也可以在輔助應用的資源分配結果展示頁面中展示資源分配結果。
終端通過輔助應用對獲取的資源分配結果進行統(tǒng)計,具體可統(tǒng)計資源分配成功的次數或者獲取到的數值資源的總額等信息。統(tǒng)計的時間段可以是自注入預設代碼起至當前時間的時間段,也可以是當日、當周或者當月的時間段。
終端可通過輔助應用同時展示資源分配結果以及統(tǒng)計結果,也可以僅展示資源分配結果和統(tǒng)計結果中的一者。在一個實施例中,終端還可以通過輔助應用分享資源分配結果和/或統(tǒng)計結果給社交好友。
舉例說明,終端可通過輔助應用提供如圖6所示的統(tǒng)計頁面,在統(tǒng)計頁面中顯示統(tǒng)計結果。圖6中統(tǒng)計頁面所顯示的統(tǒng)計結果包括最近30天所獲取到的虛擬紅包的數值資源總額,還包括單次獲取的虛擬紅包的數值資源的信息。
本實施例中,通過輔助應用可以獲取到社交應用的進程在觸發(fā)資源獲取請求后社交應用服務器所反饋的資源分配結果并進行展示,從而可以使用戶通過輔助應用及時了解到通過社交應用獲取資源的情況。
如圖7所示,在一個實施例中,預設代碼通過輔助應用被注入社交應用的進程中;該共享資源處理方法還包括根據社交應用的版本信息自適應配置預設代碼的步驟,具體包括如下步驟:
步驟702,通過輔助應用獲取社交應用的版本信息。
社交應用的版本信息是可唯一標識社交應用的版本的信息,通常為一段字符串,可以包括數字、標點符號以及字符中的至少一種。終端安裝了更新版本的社交應用后,相應的版本信息也會更新。
步驟704,從輔助應用服務器下載與版本信息匹配的配置信息。
具體地,輔助應用服務器是輔助應用的服務器,終端通過輔助應用從輔助應用服務器下載與獲取的版本信息匹配的配置信息,該配置信息用以配置進程中的預設代碼,使進程中的預設代碼在執(zhí)行時按照該配置信息來執(zhí)行。
若終端通過輔助應用未下載到與版本信息匹配的配置信息,說明輔助應用服務器上還未存儲相應的配置信息,則終端可通過輔助應用將下載任務掛起,并在預設時長之后再次下載版本信息匹配的配置信息;或者終端可在將下載任務掛起之后等待,直到接收到輔助應用服務器在更新了與版本信息匹配的配置信息后推送的相應的配置信息。
在一個實施例中,終端可通過輔助應用定期獲取社交應用的版本信息與上次傳遞給進程的配置信息對應的版本信息進行比對,若不匹配則從輔助應用服務器下載與版本信息匹配的配置信息。
步驟706,將配置信息傳遞給進程,使進程在通過預設代碼執(zhí)行獲取消息中的資源標識、根據當前登錄所述社交應用的用戶標識和資源標識生成資源獲取請求以及向社交應用所屬的社交應用服務器發(fā)送資源獲取請求中的至少一種時以配置信息為依據執(zhí)行。
具體地,終端通過輔助應用將下載的配置信息傳遞給進程,使得進程根據傳遞的配置信息更新配置。配置信息可以包括指定解析消息所調用的接口的信 息、指定生成資源獲取請求時所調用的接口的信息以及發(fā)送資源獲取請求時所調用的接口的信息中的至少一種。終端通過進程中的預設代碼以根據配置信息中指定的接口來執(zhí)行獲取消息中的資源標識、生成資源獲取請求以及向社交應用服務器發(fā)送資源獲取請求中的至少一種。
本實施例中,通過輔助應用服務器存儲與社交應用的版本信息匹配的配置信息,從而通過輔助應用可以根據社交應用的版本信息來下載相應的配置信息,以對社交應用中的預設代碼進行相應的配置,使得進程中注入的預設代碼可以適用最新版本的社交應用,避免因版本更新而導致不可用的情況。
在一個實施例中,該共享資源處理方法還包括:獲取在預設延遲時間長度范圍內的隨機延遲時間長度,并按照隨機延遲時間長度延遲執(zhí)行以下步驟中的一者:判斷獲取到的消息是否是資源共享消息;獲取消息中的資源標識;根據當前登錄所述社交應用的用戶標識和資源標識生成資源獲取請求;向社交應用所屬的社交應用服務器發(fā)送資源獲取請求。
具體地,預設延遲時間長度范圍是隨機延遲時間長度可取的范圍,該預設延遲時間長度范圍可具有最小值和最大值,在該范圍內隨機產生一個隨機延遲時間長度,從而按照該隨機延遲時間長度延遲執(zhí)行特定的步驟。按照隨機延遲時間長度延遲執(zhí)行是指并不是馬上執(zhí)行而是在等待隨機延遲時間長度后執(zhí)行。延遲執(zhí)行的步驟為判斷獲取到的消息是否是資源共享消息的步驟、步驟306、步驟308以及步驟310中的一者。
舉例說明,預設延遲時間長度范圍比如可以是(0,1秒),那么隨機產生一個隨機延遲時間長度可以是0.5秒,那么終端可通過進程中的預設代碼延遲0.5秒判斷獲取到的消息是否是資源共享消息,或者延遲0.5秒獲取消息中的資源標識,或者延遲0.5秒延遲執(zhí)行根據當前登錄所述社交應用的用戶標識和資源標識生成資源獲取請求的步驟,或者延遲0.5秒延遲執(zhí)行向社交應用所屬的社交應用服務器發(fā)送資源獲取請求。
本實施例中,通過預設代碼隨機延遲執(zhí)行為獲取共享的資源所執(zhí)行的某一步驟,可避免被社交應用服務器通過統(tǒng)計分析誤判為使用外掛,更加安全可靠。
在一個實施例中,步驟310包括:向社交應用所屬的社交應用服務器發(fā)送 資源獲取請求,使社交應用服務器從資源標識對應的剩余數值資源中劃分數值資源分配至用戶標識對應的數值資源賬戶。
具體地,本實施例中,資源標識對應的資源為數值資源,則社交應用服務器在接收到資源獲取請求后,可從資源標識對應的剩余數值資源中劃分數值資源分配至用戶標識對應的數值資源賬戶,直至資源標識對應的剩余數值資源為0。其中數值資源賬戶可以是銀行賬戶或者第三方支付賬戶,可存儲在銀行服務器或者第三方支付平臺。
其中,數值資源比如虛擬紅包的數值,電子代金券的數值或者其他可分享的數值資源。社交應用服務器在接收到資源獲取請求后,可先判斷資源標識對應的剩余數值資源是否為0,若剩余數值資源是0,則可直接生成資源分配失敗的資源分配結果;若剩余數值資源不是0,則可從資源標識對應的剩余數值資源中劃分數值資源分配至用戶標識對應的數值資源賬戶。
進一步地,若資源標識對應的資源未被獲取,則相應的剩余數值資源為資源標識對應的全部數值資源;若資源標識對應的資源已被獲取且有剩余,則相應的剩余數值資源則是全部數值資源減去已被獲取的數值資源;若資源標識對應的資源已被全部獲取,則相應的剩余數值資源為0,則會產生分配數值資源失敗的情況。
本實施例中,通過社交應用服務器處理資源獲取請求時,從資源標識對應的剩余數值資源中劃分數值資源分配至用戶標識對應的數值資源賬戶,數值資源存儲在數值資源賬戶中,可以保障數值資源的安全。
在一個實施例中,資源標識對應的資源為虛擬紅包的數值資源;社交應用服務器在從資源標識對應的剩余數值資源中劃分數值資源時按照隨機劃分方式和等額劃分方式中的一種進行劃分。
具體地,這里虛擬紅包是指具有表示資金數額的數值資源的一種虛擬對象,虛擬紅包的數值資源可被轉移,但被轉移后虛擬紅包的數值資源會相應地減少。
其中按照隨機劃分方式從資源標識對應的剩余數值資源中劃分數值資源,是指按照資源標識對應的劃分份數將虛擬紅包的數值資源總額進行劃分,每份的數值資源是隨機的,社交應用服務器每次處理資源獲取請求時將其中一份的 數值資源分配給相應的用戶標識。比如虛擬紅包的數值資源總額為100,對應的劃分份數是50,那么社交應用服務器就將100分為50份,每份的數值資源是隨機的,但所有的50份的數值資源的和為100,社交應用服務器每次處理資源獲取請求時將50份數值資源中的一份分配給相應的用戶標識。等額劃分方式與隨機劃分方式不同,在劃分份數時是等分的,即每份的數值資源是相等的。
本實施例中,社交應用服務器從資源標識對應的剩余數值資源劃分數值資源使可采用隨機劃分方式或者等額劃分方式,從而使得資源被共享時用戶之間有更豐富的互動方式的選擇。
如圖8所示,下面用一個具體應用場景來說明上述共享資源處理方法的原理,本應用場景中共享的資源為虛擬紅包,該共享資源處理方法包括如下步驟:
S801,通過輔助應用獲取社交應用的版本信息,從輔助應用服務器請求下載與版本信息匹配的配置信息。
S802,通過輔助應用接收輔助應用服務器返回的配置信息。
S803,通過輔助應用將預設代碼注入社交應用的進程中。
S804,通過輔助應用接收進程返回的注入成功的結果。
S805,通過輔助應用向進程發(fā)送配置信息。
S806,通過輔助應用接收進程返回的配置成功的結果。
S807,通過社交應用的進程獲取到社交應用的社交會話產生的消息后,若消息是虛擬紅包消息,則獲取虛擬紅包消息的虛擬紅包標識,根據當前登錄所述社交應用的用戶標識和虛擬紅包標識生成拆紅包請求。
S808,通過社交應用的進程向社交應用服務器發(fā)送拆紅包請求。
S809,社交應用服務器根據拆紅包請求從虛擬紅包標識對應的剩余資金數額中劃分資金數額分配至用戶標識對應的資金賬戶。
S810,通過社交應用的進程接收社交應用服務器返回的拆紅包結果。
S811,通過輔助應用接收進程返回的拆紅包結果。
S812,對拆紅包結果進行展示以及記錄。
如圖9所示,在一個實施例中,提供了一種共享資源處理裝置900,包括代 碼注入模塊901、消息獲取模塊902、消息解析模塊903、請求生成模塊904和請求發(fā)送模塊905。
代碼注入模塊901,用于將預設代碼注入社交應用的進程中。
具體地,預設代碼是預先編寫的用于實現共享資源處理方法的代碼,可以采用C語言或者C++語言編寫。注入是指在進程中加入可執(zhí)行的代碼的過程,注入可以是遠程注入,是指在一個進程中通過調用遠程注入系統(tǒng)函數在另一個進程中加入可執(zhí)行的代碼的過程。代碼注入模塊901可用于在不同的操作系統(tǒng)下可使用不同的遠程注入系統(tǒng)函數實現遠程注入,比如在Android操作系統(tǒng)下可使用遠程注入系統(tǒng)函數ptrace()實現遠程注入,在Solaris操作系統(tǒng)下可使用遠程注入系統(tǒng)函數dtrace()實現遠程注入,在Mac操作系統(tǒng)下可使用遠程注入系統(tǒng)函數dtruss()實現遠程注入。社交應用通常具有聯(lián)系人查找功能以及即時通信功能,還可以具有UGC(User Generated Content,用戶生成內容)分享功能以及UGC評論功能。
消息獲取模塊902,用于通過進程中的預設代碼獲取社交會話中產生的消息。
具體地,消息獲取模塊902用于通過社交應用的進程執(zhí)行預設代碼,通過該預設代碼的邏輯,獲取在社交應用中的社交會話中產生的消息。社交會話是指用戶與聯(lián)系人之間的用來交互消息的會話。聯(lián)系人可以是網絡社交好友、群組成員、企業(yè)賬號或者陌生人,陌生人是指與當前用戶未建立網絡社交關系的用戶。
社交會話可以是一對一的雙人會話,也可以是群組會話。雙人會話可以發(fā)起自用戶與聯(lián)系人中的任意一方,群組會話可以發(fā)起自相應群組中的任意群組成員,用戶與聯(lián)系人都存在于該群組中。群組可以是即時通信群組、臨時建立的討論組或者基于已有的群組而建立的討論組等。
社交會話中產生的消息可以是用戶發(fā)送的消息,也可以是來自于用戶的聯(lián)系人的消息,還可以是系統(tǒng)消息。消息可以是即時編輯產生的,也可以是轉發(fā)的消息。
消息解析模塊903,用于若獲取到的消息是資源共享消息,則獲取消息中的 資源標識。
具體地,消息是結構化消息,包括若干字段,至少包括消息類型字段和消息內容字段,消息內容字段的數據中包括資源標識消息獲取模塊902通過進程中的預設代碼獲取到消息后,消息解析模塊903可調用預設代碼所指定的消息解析接口來解析該消息獲得消息類型字段的數據,根據消息類型字段的數據判斷該消息是否為資源共享消息。若是資源共享消息,則消息解析模塊903通過進程中的預設代碼獲取消息中的資源標識;若不是資源共享消息,則進程中的預設代碼停止對該消息的處理。進程本身也會按照進程本身的邏輯處理消息,比如解析消息獲得消息內容并展示等,不被預設代碼的邏輯所影響。
在一個實施例中,消息解析模塊903具體用于若獲取到的消息是資源共享消息,且資源標識對應的資源所屬的資源共享用戶被配置為允許獲取所共享的資源,則獲取消息中的資源標識。
具體地,消息解析模塊903通過進程中的預設代碼解析消息獲得消息類型字段的數據和資源共享用戶字段的數據,從而根據消息類型字段的數據判定消息是資源共享消息,根據資源共享用戶字段的數據判定相應的資源共享用戶被配置為允許獲取該資源共享用戶所共享的資源,則獲取消息中的資源標識。
其中資源共享用戶被配置為允許獲取所共享的資源,可以是相應的資源共享用戶存在于允許獲取其所共享的資源的用戶列表中,和/或相應的資源共享用戶不存在于禁止獲取其所共享的資源的用戶列表中。資源共享用戶是指發(fā)起資源共享的用戶或者轉發(fā)共享的資源的用戶,當前終端的用戶為資源承受方用戶,資源共享用戶與資源承受用戶可以是同一用戶。
本實施例中,用戶可以配置允許或者不允許獲取特定用戶所共享的資源,從而可以靈活地調整獲取資源的策略。
請求生成模塊904,用于根據當前登錄所述社交應用的用戶標識和資源標識生成資源獲取請求。
具體地,請求生成模塊904用于通過進程中的預設代碼調用預設代碼所指定的資源獲取請求生成接口來根據當前登錄所述社交應用的用戶標識和資源標識生成資源獲取請求。用戶標識是唯一表示用戶的字符串,用戶標識可以包括 數字、字母以及標點符號中的至少一種。用戶標識可以是登錄社交應用的用戶賬號。請求生成模塊904通過進程中的預設代碼根據當前登錄所述社交應用的用戶標識和資源標識生成資源獲取請求時,可對用戶標識和資源標識進行加密,此時資源獲取請求就是一串加密的字符串。
請求發(fā)送模塊905,用于向社交應用所屬的社交應用服務器發(fā)送資源獲取請求,使社交應用服務器為用戶標識分配資源標識對應的資源。
具體地,社交應用服務器是社交應用的服務器,請求發(fā)送模塊905通過進程的預設代碼調用預設代碼所指定的通信接口與社交應用服務器進行通信,以向社交應用所屬的社交應用服務器發(fā)送資源獲取請求。社交應用服務器從資源獲取請求中提取用戶標識和資源標識,從而為用戶標識分配該資源標識對應的資源。在分配資源使可將資源標識對應的全部資源或者部分資源分配給用戶標識。資源標識對應的資源可以是數值資源,比如虛擬紅包的數值資源。
上述共享資源處理裝置900,將預設代碼注入社交應用的進程中,就可以通過預設代碼在該進程中獲取社交應用中產生的消息,如果是資源共享消息,便可以解析獲得資源標識并與用戶標識結合生成資源獲取請求。通過社交應用的進程將資源獲取請求發(fā)送至社交應用服務器,就可以使得社交應用服務器自動為用戶標識分配資源標識對應的資源。通過社交應用本身的進程就可以自動地獲取共享的資源,與是否開啟系統(tǒng)通知欄通知功能無關,使用場景不受系統(tǒng)通知欄通知功能的限制,而且通過進程本身來獲取共享的資源也比通過檢測系統(tǒng)通知欄的消息來獲取共享的資源效率更高。
如圖10所示,在一個實施例中,代碼注入模塊901包括:存儲空間分配模塊901a、動態(tài)鏈接庫加載模塊901b、函數地址獲取模塊901c和函數執(zhí)行模塊901d。
存儲空間分配模塊901a,用于遠程調用社交應用的進程的用于分配存儲空間的系統(tǒng)調用函數以分配存儲空間,并在存儲空間中寫入動態(tài)鏈接庫的路徑。
具體地,代碼注入模塊901可通過輔助應用獲取社交應用的進程標識(PID),從而通過該進程標識連接到社交應用的進程。代碼注入模塊901通過輔助應用獲取進程的寄存器值并保存,以便完成注入后恢復進程原有的狀態(tài)。終端通過 輔助應用獲取進程的用于分配存儲空間的系統(tǒng)調用函數(mmap)的調用地址、用于加載動態(tài)鏈接庫的系統(tǒng)調用函數(dlopen)的調用地址以及用于操作動態(tài)鏈接庫的系統(tǒng)調用函數(dlsym)的調用地址。從而存儲空間分配模塊901a根據進程的用于分配存儲空間的系統(tǒng)調用函數的調用地址調用相應的系統(tǒng)調用函數(mmap)來分配一段存儲空間,并在分配的存儲空間中寫入動態(tài)鏈接庫(SO)的路徑以及函數調用參數,該動態(tài)鏈接庫是需要注入的預設代碼。
動態(tài)鏈接庫加載模塊901b,用于遠程調用進程的用于加載動態(tài)鏈接庫的系統(tǒng)調用函數以根據路徑加載動態(tài)鏈接庫。
具體地,動態(tài)鏈接庫加載模塊901b通過輔助應用根據用于加載動態(tài)鏈接庫的系統(tǒng)調用函數的調用地址調用相應的系統(tǒng)調用函數(dlopen),以根據存儲空間中寫入的路徑加載相應的動態(tài)鏈接庫。
函數地址獲取模塊901c,用于遠程調用進程的用于操作動態(tài)鏈接庫的系統(tǒng)調用函數獲取動態(tài)鏈接庫中用于處理共享資源的函數的函數地址。
具體地,函數地址獲取模塊901c通過輔助應用根據用于操作動態(tài)鏈接庫的系統(tǒng)調用函數的調用地址調用相應的系統(tǒng)調用函數(dlsym),以根據存儲空間中寫入的函數調用參數從加載的動態(tài)鏈接庫中獲取函數地址。
函數執(zhí)行模塊901d,用于根據獲取的函數地址執(zhí)行相應的函數。
具體地,獲取的函數地址的函數用于處理共享資源,主要用于獲取社交會話中產生的消息;若獲取到的消息是資源共享消息,則獲取消息中的資源標識;根據當前登錄所述社交應用的用戶標識和資源標識生成資源獲取請求;向社交應用所屬的社交應用服務器發(fā)送資源獲取請求,使社交應用服務器為用戶標識分配資源標識對應的資源。
本實施例中,通過遠程注入的方式向社交應用的進程注入動態(tài)鏈接庫以執(zhí)行動態(tài)鏈接庫中的相應函數,從而使得進程可以在獲取到資源共享消息后自動地處理資源共享消息。
如圖11所示,在一個實施例中,預設代碼通過輔助應用被注入社交應用的進程中,共享資源處理裝置900還包括:資源分配結果接收模塊906、資源分配結果獲取模塊907和資源分配結果處理模塊908。
資源分配結果接收模塊906,用于通過進程接收社交應用服務器反饋的資源分配結果。
具體地,社交應用服務器根據資源獲取請求進行資源分配的處理后,會向終端反饋資源分配結果。資源分配結果包括資源分配成功的結果和資源分配失敗的結果。
資源分配結果獲取模塊907,用于通過輔助應用獲取來自于進程的資源分配結果。
具體地,資源分配結果獲取模塊907可通過輔助應用主動通過進程中的預設代碼所提供的接口獲取應用服務器所反饋的資源分配結果,也可以被動地接收進程通過其中的預設代碼向輔助應用傳遞的資源分配結果。
資源分配結果處理模塊908,用于展示資源分配結果,和/或,根據獲取的資源分配結果進行統(tǒng)計后展示統(tǒng)計結果。
資源分配結果處理模塊908可通過輔助應用展示資源分配結果,具體可通過系統(tǒng)通知欄的通知消息展示資源分配結果,也可以在輔助應用的資源分配結果展示頁面中展示資源分配結果。
資源分配結果處理模塊908通過輔助應用對獲取的資源分配結果進行統(tǒng)計,具體可統(tǒng)計資源分配成功的次數或者獲取到的數值資源的總額等信息。統(tǒng)計的時間段可以是自注入預設代碼起至當前時間的時間段,也可以是當日、當周或者當月的時間段。
資源分配結果處理模塊908可通過輔助應用同時展示資源分配結果以及統(tǒng)計結果,也可以僅展示資源分配結果和統(tǒng)計結果中的一者。在一個實施例中,終端還可以通過輔助應用分享資源分配結果和/或統(tǒng)計結果給社交好友。
本實施例中,通過輔助應用可以獲取到社交應用的進程在觸發(fā)資源獲取請求后社交應用服務器所反饋的資源分配結果并進行展示,從而可以使用戶通過輔助應用及時了解到通過社交應用獲取資源的情況。
如圖12所示,在一個實施例中,預設代碼通過輔助應用被注入社交應用的進程中,共享資源處理裝置900還包括:版本信息獲取模塊909、配置信息下載模塊910和配置信息發(fā)送模塊911。
版本信息獲取模塊909,用于通過輔助應用獲取社交應用的版本信息。社交應用的版本信息是可唯一標識社交應用的版本的信息,通常為一段字符串,可以包括數字、標點符號以及字符中的至少一種。終端安裝了更新版本的社交應用后,相應的版本信息也會更新。
配置信息下載模塊910,用于從輔助應用服務器下載與版本信息匹配的配置信息。具體地,輔助應用服務器是輔助應用的服務器,配置信息下載模塊910通過輔助應用從輔助應用服務器下載與獲取的版本信息匹配的配置信息,該配置信息用以配置進程中的預設代碼,使進程中的預設代碼在執(zhí)行時按照該配置信息來執(zhí)行。
若配置信息下載模塊910通過輔助應用未下載到與版本信息匹配的配置信息,說明輔助應用服務器上還未存儲相應的配置信息,則配置信息下載模塊910可通過輔助應用將下載任務掛起,并在預設時長之后再次下載版本信息匹配的配置信息;或者配置信息下載模塊910可在將下載任務掛起之后等待,直到接收到輔助應用服務器在更新了與版本信息匹配的配置信息后推送的相應的配置信息。
在一個實施例中,版本信息獲取模塊909可通過輔助應用定期獲取社交應用的版本信息與上次傳遞給進程的配置信息對應的版本信息進行比對,若不匹配則配置信息下載模塊910從輔助應用服務器下載與版本信息匹配的配置信息。
配置信息發(fā)送模塊911,用于將配置信息傳遞給進程,使進程在通過預設代碼執(zhí)行獲取消息中的資源標識、根據當前登錄所述社交應用的用戶標識和資源標識生成資源獲取請求以及向社交應用所屬的社交應用服務器發(fā)送資源獲取請求中的至少一種時以配置信息為依據執(zhí)行。
具體地,配置信息發(fā)送模塊911通過輔助應用將下載的配置信息傳遞給進程,使得進程根據傳遞的配置信息更新配置。配置信息可以包括指定解析消息所調用的接口的信息、指定生成資源獲取請求時所調用的接口的信息以及發(fā)送資源獲取請求時所調用的接口的信息中的至少一種。
本實施例中,通過輔助應用服務器存儲與社交應用的版本信息匹配的配置信息,從而通過輔助應用可以根據社交應用的版本信息來下載相應的配置信息, 以對社交應用中的預設代碼進行相應的配置,使得進程中注入的預設代碼可以適用最新版本的社交應用,避免因版本更新而導致不可用的情況。
如圖13所示,在一個實施例中,共享資源處理裝置900還包括:隨機延遲時間長度獲取模塊912,用于獲取在預設延遲時間長度范圍內的隨機延遲時間長度;消息解析模塊903、請求生成模塊904以及請求發(fā)送模塊905中的一者用于按照隨機延遲時間長度延遲執(zhí)行相應的功能。
具體地,預設延遲時間長度范圍是隨機延遲時間長度可取的范圍,該預設延遲時間長度范圍可具有最小值和最大值,在該范圍內隨機產生一個隨機延遲時間長度,從而使得消息解析模塊903、請求生成模塊904以及請求發(fā)送模塊905中的一者按照該隨機延遲時間長度延遲執(zhí)行相應的功能。
本實施例中,通過預設代碼隨機延遲執(zhí)行為獲取共享的資源所執(zhí)行的某一步驟,可避免被社交應用服務器通過統(tǒng)計分析誤判為使用外掛,更加安全可靠。
在一個實施例中,請求發(fā)送模塊904具體用于向社交應用所屬的社交應用服務器發(fā)送資源獲取請求,使社交應用服務器從資源標識對應的剩余數值資源中劃分數值資源分配至用戶標識對應的數值資源賬戶。
具體地,本實施例中,資源標識對應的資源為數值資源,則社交應用服務器在接收到資源獲取請求后,可從資源標識對應的剩余數值資源中劃分數值資源分配至用戶標識對應的數值資源賬戶,直至資源標識對應的剩余數值資源為0。其中數值資源賬戶可以是銀行賬戶或者第三方支付賬戶,可存儲在銀行服務器或者第三方支付平臺。
其中,數值資源比如虛擬紅包的數值,電子代金券的數值或者其他可分享的數值資源。社交應用服務器在接收到資源獲取請求后,可先判斷資源標識對應的剩余數值資源是否為0,若剩余數值資源是0,則可直接生成資源分配失敗的資源分配結果;若剩余數值資源不是0,則可從資源標識對應的剩余數值資源中劃分數值資源分配至用戶標識對應的數值資源賬戶。
進一步地,若資源標識對應的資源未被獲取,則相應的剩余數值資源為資源標識對應的全部數值資源;若資源標識對應的資源已被獲取且有剩余,則相應的剩余數值資源則是全部數值資源減去已被獲取的數值資源;若資源標識對 應的資源已被全部獲取,則相應的剩余數值資源為0,則會產生分配數值資源失敗的情況。
本實施例中,通過社交應用服務器處理資源獲取請求時,從資源標識對應的剩余數值資源中劃分數值資源分配至用戶標識對應的數值資源賬戶,數值資源存儲在數值資源賬戶中,可以保障數值資源的安全。
在一個實施例中,資源標識對應的資源為虛擬紅包的數值資源;社交應用服務器在從資源標識對應的剩余數值資源中劃分數值資源時按照隨機劃分方式和等額劃分方式中的一種進行劃分。
具體地,這里虛擬紅包是指具有表示資金數額的數值資源的一種虛擬對象,虛擬紅包的數值資源可被轉移,但被轉移后虛擬紅包的數值資源會相應地減少。
其中按照隨機劃分方式從資源標識對應的剩余數值資源中劃分數值資源,是指按照資源標識對應的劃分份數將虛擬紅包的數值資源總額進行劃分,每份的數值資源是隨機的,社交應用服務器每次處理資源獲取請求時將其中一份的數值資源分配給相應的用戶標識。等額劃分方式與隨機劃分方式不同,在劃分份數時是等分的,即每份的數值資源是相等的。
本實施例中,社交應用服務器從資源標識對應的剩余數值資源劃分數值資源使可采用隨機劃分方式或者等額劃分方式,從而使得資源被共享時用戶之間有更豐富的互動方式的選擇。
本領域普通技術人員可以理解實現上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory,ROM)等非易失性存儲介質,或隨機存儲記憶體(Random Access Memory,RAM)等。
以上所述實施例的各技術特征可以進行任意的組合,為使描述簡潔,未對上述實施例中的各個技術特征所有可能的組合都進行描述,然而,只要這些技 術特征的組合不存在矛盾,都應當認為是本說明書記載的范圍。
以上所述實施例僅表達了本發(fā)明的幾種實施方式,其描述較為具體和詳細,但并不能因此而理解為對發(fā)明專利范圍的限制。應當指出的是,對于本領域的普通技術人員來說,在不脫離本發(fā)明構思的前提下,還可以做出若干變形和改進,這些都屬于本發(fā)明的保護范圍。因此,本發(fā)明專利的保護范圍應以所附權利要求為準。