Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Jak "zastopować" FatalError?
trifek
post 26.09.2016, 12:19:57
Post #1





Grupa: Zarejestrowani
Postów: 340
Pomógł: 0
Dołączył: 28.09.2015

Ostrzeżenie: (0%)
-----


Witam serdecznie,
Mam taki skrypt w PHP:

  1. $fb = new Facebook\Facebook([
  2. 'app_id' => '',
  3. 'app_secret' => '',
  4. 'default_graph_version' => 'v2.5',
  5. ]);
  6.  
  7. $helper = $fb->getRedirectLoginHelper();
  8.  
  9. try {
  10. $accessToken = $helper->getAccessToken();
  11.  
  12. if (!$accessToken->isLongLived()) {
  13. $accessToken = $oAuth2Client->getLongLivedAccessToken($accessToken);
  14. }
  15.  
  16.  
  17.  
  18. } catch(Facebook\Exceptions\FacebookResponseException $e) {
  19. // When Graph returns an error
  20.  
  21. echo 'Graph returned an error: ' . $e->getMessage();
  22. exit;
  23. } catch(Facebook\Exceptions\FacebookSDKException $e) {
  24.  
  25. echo 'Facebook SDK returned an error: ' . $e->getMessage();
  26. exit;
  27. }
  28.  
  29.  
  30. try {
  31.  
  32. $response = $fb->get('/me?fields=id,name,email,first_name,last_name', $accessToken->getValue());
  33. } catch(Facebook\Exceptions\FacebookResponseException $e) {
  34. echo 'ERROR: Graph ' . $e->getMessage();
  35. } catch(Facebook\Exceptions\FacebookSDKException $e) {
  36. // When validation fails or other local issues
  37. echo 'ERROR: validation fails ' . $e->getMessage();
  38. }
  39. $me = $response->getGraphUser();
  40.  
  41.  
  42. $response = $fb->get('/PAGE-ID?fields=access_token', $accessToken->getValue());
  43. $result = $response->getGraphObject()->asArray();
  44. $pageToken = $result['id']; // id strony z której nastąpiło logowanie
  45.  
  46.  
  47.  
  48. $request = $fb->get('/me/accounts', $accessToken->getValue());
  49. $graphObject = $request->getBody();
  50. $graphObject = json_decode($graphObject, true);
  51.  
  52.  
  53. }




Bardzo często łapie mi FATAL ERROR: Fatal error: Call to a member function getLongLivedAccessToken() on null in /home/fb.php (i słusznie).

W jaki sposób zrobić, żeby skrypt nie wyświetlał komunikatu Fatal Error - a np. komunikat "Nastąpił Błąd - wypisz się z FB"?

Chodzi mi tylko o to żeby skrypt nie sypał FatalErrorem - a wyświetlał komunikat po polsku (w momencie błędu) i się zatrzymywał?


Bardzo proszę o pomoc,
Trifek
Go to the top of the page
+Quote Post
kapslokk
post 26.09.2016, 12:22:31
Post #2





Grupa: Zarejestrowani
Postów: 965
Pomógł: 285
Dołączył: 19.06.2015
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


  1. if($oAuth2Client === null){
  2. echo; exit; albo rzucanie wyjatku
  3. }
  4. $accessToken = $oAuth2Client->getLongLivedAccessToken($accessToken);


Ten post edytował kapslokk 26.09.2016, 12:23:07
Go to the top of the page
+Quote Post
Puszy
post 28.09.2016, 09:18:34
Post #3





Grupa: Zarejestrowani
Postów: 279
Pomógł: 42
Dołączył: 10.10.2011

Ostrzeżenie: (0%)
-----


Proponuję się zapoznać z register_shutdown_function()
Go to the top of the page
+Quote Post
lukaskolista
post 28.09.2016, 11:26:36
Post #4





Grupa: Zarejestrowani
Postów: 872
Pomógł: 94
Dołączył: 31.03.2010

Ostrzeżenie: (0%)
-----


Od php7 fatal errory są traktowane tak, jak wyjątki w php 5.6. Jeżeli korzystasz z php7: http://php.net/manual/en/language.errors.php7.php
Generalnie interfacem Throwable złapiesz wszystko, Error błędy php a Exception błędy aplikacji.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 05:53