2014-02-28 99 views
1

我使用Shephertz App42的推送通知服務。當userId未在AppHQ註冊時推送通知

我試圖發送推送通知給用戶,每當其他玩家擊敗他的分數。我在做的是,player1將他的分數和facebook id註冊到mySQL服務器。 Player1還將App ID推送通知的用戶標識facebook id註冊。然後player2也是這樣做的,但是比分player1更高。然後管理用戶分數的PHP代碼將檢查player2的分數是否大於player1的分數。所以我用這個PHP代碼發送推送通知到PLAYER1

$pushNotification = $pushNotificationService->sendPushMessageToUser($user,$message);

如果PLAYER1註冊了他的AppHQ用戶id,那麼它的做工非常精細。

但是,在某些情況下,包括測試,player1尚未註冊到AppHQ(可能他不想允許推送通知)。這裏的問題發生,我得到這個錯誤:

Fatal error: Uncaught exception 'com\shephertz\app42\paas\sdk\php\App42NotFoundException' in /home/vhosts/www.kanpot2002.com/1.2/RestClient.class.php:324 Stack trace:

#0 /home/vhosts/www.kanpot2002.com/1.2/PushNotificationService.php(239): com\shephertz\app42\paas\sdk\php\connection\RestClient::post(' https://api.she ...', Array, NULL, NULL, 'application/jso...', 'application/jso...', '{"app42":{"push...')

#1 /home/vhosts/www.kanpot2002.com/PushNotificationManager.php(34): com\shephertz\app42\paas\sdk\php\push\PushNotificationService->sendPushMessageToUser(563043561, 'FIRST_NAME has ...')

#2 /home/vhosts/www.kanpot2002.com/addbestscore.php(85): PushNotificationManager->SendMessageToUser(563043561, 'FIRST_NAME has ...')

#3 {main} thrown in /home/vhosts/www.kanpot2002.com/1.2/RestClient.class.php on line 324

然後我嘗試使用這個

try{ $pushNotification = $pushNotificationService->sendPushMessageToUser($user,$message); } catch(Exception $e){}

的效果更好。沒有userId的第一個用戶被捕獲並且沒有錯誤。但第二個用戶給了我這個錯誤(就好像它忽略了try catch語句)

Fatal error: Call to a member function __get() on a non-object in /home/vhosts/www.kanpot2002.com/1.2/PushNotificationResponseBuilder.php on line 23

我真的被困在這。請幫忙!

感謝,

kanpot2002

+0

我覺得這個解決方案將工作.. –

回答

2

創建服務的新實例時,你永遠調用它的方法就像這樣:

$pushService= $api->buildPushNotificationService(); 
+0

謝謝,我我會嘗試。 – kanpot2002