NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Facebook správy

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Loter
Člen
Avatar
Loter:18.1.2017 15:44

Na internete som našiel tento kód, ktorý má prihlási na môj FB pomocou PHP

<?php


        # Start the session
        session_start();

        # Autoload the required files
        require_once __DIR__ . '/vendor/autoload.php';

        # Set the default parameters
        $fb = new Facebook\Facebook([
          'app_id' => 'YOUR_APP_ID',
          'app_secret' => 'YOUR_APP_SECRET',
          'default_graph_version' => 'v2.5',
        ]);
        $redirect = 'YOUR_REDIRECT_URL';


        # Create the login helper object
        $helper = $fb->getRedirectLoginHelper();

        # Get the access token and catch the exceptions if any
        try {
          $accessToken = $helper->getAccessToken();
        } catch(Facebook\Exceptions\FacebookResponseException $e) {
          // When Graph returns an error
          echo 'Graph returned an error: ' . $e->getMessage();
          exit;
        } catch(Facebook\Exceptions\FacebookSDKException $e) {
          // When validation fails or other local issues
          echo 'Facebook SDK returned an error: ' . $e->getMessage();
          exit;
        }

        # If the
        if (isset($accessToken)) {
                // Logged in!
                // Now you can redirect to another page and use the
                // access token from $_SESSION['facebook_access_token']
                // But we shall we the same page

                // Sets the default fallback access token so
                // we don't have to pass it to each request
                $fb->setDefaultAccessToken($accessToken);

                try {
                  $response = $fb->get('/me?fields=email,name');
                  $userNode = $response->getGraphUser();
                }catch(Facebook\Exceptions\FacebookResponseException $e) {
                  // When Graph returns an error
                  echo 'Graph returned an error: ' . $e->getMessage();
                  exit;
                } catch(Facebook\Exceptions\FacebookSDKException $e) {
                  // When validation fails or other local issues
                  echo 'Facebook SDK returned an error: ' . $e->getMessage();
                  exit;
                }


                // Print the user Details
                echo "Welcome !<br><br>";
                echo 'Name: ' . $userNode->getName().'<br>';
                echo 'User ID: ' . $userNode->getId().'<br>';
                echo 'Email: ' . $userNode->getProperty('email').'<br><br>';

                $image = 'https://graph.facebook.com/'.$userNode->getId().'/picture?width=200';
                echo "Picture<br>";
                echo "<img src='$image' /><br><br>";

        }else{
                $permissions  = ['email'];
                $loginUrl = $helper->getLoginUrl($redirect,$permissions);
                echo '<a href="' . $loginUrl . '">Log in with Facebook!</a>';
        }

Konkrétne tento kód vypisuje základné údaje prihláseného konta. Potreboval by som aby mi to vypisovalo napr. všetky správy od najnovších alebo včetky upozornenia. Už som prešiel asi včetky podstránky FB Graph API + strašne veľa stránok a nič funkčné som nenašiel (max. mi to vypísalo správu xy aj to cez ich Graph API). Včera sa mi dokonca snívalo ako hľadám riešenie tohoto problému, čiže by som bol vdačný keby mi niekto pomohol.

Editováno 18.1.2017 15:44
Odpovědět
18.1.2017 15:44
Kto vie dobre programovať, nemusí sa pretvarovať :)
Avatar
Adam Ježek
Tvůrce
Avatar
Odpovídá na Loter
Adam Ježek:18.1.2017 16:31

Facebook api je jedna velká neznámá, tenkrát sem to chtěl zprovoznit a dokumentace špatná, navíc co vím tak graph api má někdy končit.
Tenkrát sem to vyřešil přes neoficiální api, někdo v něm simuluje prohlížeč. Jednoduché na práci se zprávami. https://github.com/…ook-chat-api

Nahoru Odpovědět
18.1.2017 16:31
Počkej chvíli, poradím se s křišťálovou koulí.
Avatar
Loter
Člen
Avatar
Odpovídá na Adam Ježek
Loter:18.1.2017 18:32

Je možné tie javascripty nejako zakomponovať do PHP kódu alebo musím použiť Nodejs?

Nahoru Odpovědět
18.1.2017 18:32
Kto vie dobre programovať, nemusí sa pretvarovať :)
Avatar
Loter
Člen
Avatar
Loter:21.1.2017 16:39

V tej api som sa za tých pár dní ešte viac stratil. Po dlhom hľadaní som sa dopracoval ku tomuto odkazu https://graph.facebook.com/me/inbox?… (po dopísaní tokenu s read_mail právami z
https://developers.facebook.com/tools/explorer?… vám to vypíše správy). Po dalšom hľadaní som zistil, že je read_mail zastaralé (čiže mi to nevypisuje ani všetky správy) a, že je treba použiť /{conversation-id}/messages (https://developers.facebook.com/…ion/messages). Nemám však ponatie skadial mám zobrať conversation-id aby mi to vypísalo neprečítané správy. Nejaké nápady? (najlepší by bol už čisto odkaz do ktorého by som len doplnil token)

Nahoru Odpovědět
21.1.2017 16:39
Kto vie dobre programovať, nemusí sa pretvarovať :)
Avatar
Odpovídá na Loter
Neaktivní uživatel:27.1.2017 15:27

http://stackoverflow.com/…facebook-api
Jíž není možné dostat přístup k zprávam uživatelů, minimálně né pomocí Graph API

Will it be possible to access inbox in some other way from now on?

No. That's no longer possible

Editováno 27.1.2017 15:28
Nahoru Odpovědět
27.1.2017 15:27
Neaktivní uživatelský účet
Avatar
Loter
Člen
Avatar
Odpovídá na Neaktivní uživatel
Loter:27.1.2017 16:48

K tomu som sa dostal aj ja. Ale príde mi to zvláštne, keďže sa pri adrese https://graph.facebook.com/me/inbox?… + token z tadialto https://developers.facebook.com/tools/explorer?… dá bezproblémov dostať ku správam (čiže len potrebujem cez program dostať ten správny Token). V prípade, že to naozaj nejde máš nejaké riešenie?

Nahoru Odpovědět
27.1.2017 16:48
Kto vie dobre programovať, nemusí sa pretvarovať :)
Avatar
Odpovídá na Loter
Neaktivní uživatel:28.1.2017 0:51

Právě, že ten "správný" token nedostaneš, protože aby ti to fungovalo potřebuješ mít token který má povoleno "read_mailbox", ale to už nenabízí.

Bohužel, nevím jak jinak dostat zprávy z FB profilu :(

Nicméně, ty potřebuješ zprávy uživatele? Nebo fanpage? Pokud fanpage, tak to je možné, jen požádaš o prává "read_page_ma­ilboxes".

Nahoru Odpovědět
28.1.2017 0:51
Neaktivní uživatelský účet
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.