Toon posts:

[PHP][API] /me/feed ontvangen via script

Pagina: 1
Acties:

Onderwerpen


Anoniem: 99555

Topicstarter
Hallo,

Probleem: Graag zou ik via de PHP API van Facebook (https://github.com/facebook/php-sdk) de wall feed van een vooraf gedefinieerde user willen binnen halen. Het is wenselijk dat dit bijvoorbeeld via een crontab gaat lopen, zodat dit script een aantal maal per dag uitgevoerd kan worden.

Om dit te kunnen maken heb ik de documentatie op developers.facebook.com doorgelezen en met name de authorisatie die nodig is. Echter laat deze alleen voorbeelden zien hoe verschillende gebruiker via een webinterface (verwijzing naar een fb-popup met login) kunnen inloggen waarna een code (authcode) wordt teruggestuurd. Deze code wordt in een sessie opgeslagen en die dan dus uiteindelijk ook weer kan verlopen.

In mijn voorbeeld is het niet de bedoeling dat er continue ingelogd gaat worden maar dat het script in achtergrond rustig zijn informatie kan ophalen. Ik weet echter niet waar ik naar moet zoeken?

Kan iemand mij opweg helpen of waar ik meer informatie kan vinden?

Mvg,

Nick

  • BikkelZ
  • Registratie: Januari 2000
  • Laatst online: 03-12-2022

BikkelZ

CMD+Z

Facebook kan best lastig zijn om mee te beginnen, omdat ze verschillende benadermethodes hebben zoals FBML, twee API's onderhouden en bovendien alleen maar rotzooi geven als voorbeeldcode. Het is beter dat je eens rondneust voor wat open source code van mensen die er zelf een framework voor geschreven hebben dan dat je gaat modderen met de voorbeelden die Facebook je geeft, dan ga je namelijk geheid heel snel vastlopen.

iOS developer


  • gerbennn
  • Registratie: November 2003
  • Laatst online: 02-06 10:38
Anoniem: 99555 schreef op vrijdag 10 juni 2011 @ 15:31:

In mijn voorbeeld is het niet de bedoeling dat er continue ingelogd gaat worden maar dat het script in achtergrond rustig zijn informatie kan ophalen. Ik weet echter niet waar ik naar moet zoeken?
Voor deze situaties heeft facebook een aparte permissie die je instaat stelt om, ook buiten het gebruik van je applicatie door de gebruiker, API calls te doen. Zo zal de access token niet meer verlopen (of in ieder geval is 'ie 'long-lived', geen idee hoe lang het daadwerkelijk is.

offline_accessEnables your app to perform authorized requests on behalf of the user at any time. By default, most access tokens expire after a short time period to ensure applications only make requests on behalf of the user when the are actively using the application. This permission makes the access token returned by our OAuth endpoint long-lived.

bron

[Voor 0% gewijzigd door gerbennn op 10-06-2011 15:58. Reden: zinsopbouw]

</signature>


  • Precision
  • Registratie: November 2006
  • Laatst online: 17-01-2020
Als je iets vraagt aan facebook zal je zien dat alles eigenlijk via $facebook->api() verloopt. Die api verwacht wat je wil als een array. Als je berichten via een crontab wil uitvoeren heb je een access_token nodig.
PHP:
1
2
3
4
5
$request = array();
$request["access_token"] = "";
$request["query"] = "select uid, first_name, last_name, birthday, birthday_date from user where uid in (SELECT uid1 FROM friend WHERE uid2 = me()) and strlen(birthday_date) != 0";
$request["method"] = fql.query;
$facebook->api( $request );

Eigenlijk heb je 2 scripts nodig, een die toestemming vraagt aan de gebruiker en de access_token die hierbij wordt verkregen opslaat. En een script zoals hierboven die dan bestaat uit je cronjob.
Hier vraag je de permities aan.
PHP:
1
2
3
$perm = array('req_perms' => 'user_about_me,friends_birthday,user_birthday,user_groups,publish_stream,offline_access');
$loginUrl = $facebook->getLoginUrl($perm);
header("Location: ".$loginUrl);

Het stuk over die access_token staat nergens of slecht gedocumenteerd, dit heb ik door de code van facebook te lezen zelf gevonden. Ik hoop dat je hiermee wat tijd bespaart en je op weg help. De code komt uit een verjaardagsscript die ooit heb gemaakt omdat ik altijd vergat om te posten op mensen hun wall. Dit verloopt nu automatisch :+ ook krijg ik bij bepaalde mensen nu een sms en/of e-mail. Lang leve techniek en geen ruzies meer omdat ik verjaardagen vergeten was 8)

Crisis? Koop slim op Dagoffer - Op zoek naar een tof cadeau?



Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee