Hallo,

Ik zoek iemand die ervaring heeft met de Facebook API.
In een bestaand project wil ik een "facebook page" check doen, zodat er geen verkeerde links worden geplaatst.

Dus personen posten een link facebook.com/naam en die wordt via graph.facebook.com gecontroleerd en zo nodig geweigerd.

Het is gemakkelijk toe te voegen en voor iemand met ervaring ~10 minuten werk. Persoonlijk nooit mee gewerkt en wel wat aanpassingen geprobeerd.

Budget ~20€
Dit zou moeten werken

<?php
if(isset($_GET['q']))
{
	$json = @file_get_contents('http://graph.facebook.com/http://www.facebook.com/'.htmlentities($_GET['q']));
	$result = json_decode($json, true);

	if(isset($result['username']) && $result['username'] == $_GET['q'])
	{
		echo 'Deze gebruikersnaam bestaat';
	}
	else
	{
		echo 'Deze gebruikersnaam bestaat niet';
	}
}
?>
<form method="GET">
<input type="search" name="q" placeholder="Vul hier je gebruikersnaam in" />
<button>Zoek</button>
</form>

[edit]
Controle op Username ipv Name
[/edit]
Michael - op 05/11/2013 12:18:29

Dit zou moeten werken

<?php
if(isset($_GET['q']))
{
	$json = @file_get_contents('http://graph.facebook.com/http://www.facebook.com/'.htmlentities($_GET['q']));
	$result = json_decode($json, true);

	if(isset($result['username']) && $result['username'] == $_GET['q'])
	{
		echo 'Deze gebruikersnaam bestaat';
	}
	else
	{
		echo 'Deze gebruikersnaam bestaat niet';
	}
}
?>
<form method="GET">
<input type="search" name="q" placeholder="Vul hier je gebruikersnaam in" />
<button>Zoek</button>
</form>

[edit]
Controle op Username ipv Name
[/edit]


Het werkt tot nu zoals het moet.
Maar ik krijg het niet compatible met mijn systeem.

if(!isset($data->login)){echo "<script>document.location.href='index.php'</script>"; exit;}
if(isset($_POST['add'])){
if(isset($_POST['q']))
{
$json = @file_get_contents('http://graph.facebook.com/'.htmlentities($_POST['q']));
$result = json_decode($json, true);

if(isset($result['username']) && $result['username'] == $_POST['q'])
{
echo 'Deze gebruikersnaam bestaat';
}
else
{
echo 'Deze gebruikersnaam bestaat niet';
}
}
if(!preg_match("/\bfacebook.com\b/i", $_POST['url'])){$msg = "<div class=\"msg_error\">Gebruik FB Page!</div>";}


En submit:

<form method="post">
<tr><td><label for="url">Page URL:</label></td><td width="20"></td><td><input type="text" name="q" name="url" id="url" size="40" maxlength="150" value="http://"


Wat doe ik fout? ik wil dat het samen gaat met preg_match, http nodig in preg_match? Bedankt!

Simpel uitgelegd:
Gebruikers sturen urls en wordt opgeslagen in mysql db. Nu versturen ze vaak een "dode" link. Dus ik wil dit systeem gebruiken om het te controleren, zodat de gebruikers: http://www.facebook.com/pagename kunnen typen en die met graph wordt getest.

<?php
if(!isset($data->login)) {
	header('Location:index.php');
	/*
	* Beter alternatief voor
	* echo "<script>document.location.href='index.php'</script>"; exit;
	*/
}

if(isset($_POST['add'],$_POST['url'])) {
	$json = @file_get_contents('http://graph.facebook.com/'.htmlentities($_POST['url']));
	$result = json_decode($json, true);
	
	$urlgetParts = explode('/',$_POST['url']);
	
	if($urlgetParts[0] == 'http:' && $urlgetParts[2] == 'www.facebook.com')
	{
		$getUsername = end($urlgetParts);

		if(isset($result['username']) && $result['username'] == $getUsername)
		{
			echo 'Deze link is juist';
		}
		else
		{
			echo 'Facebook pagina bestaat niet';
		}
	}
	else
	{
		echo 'Ingevulde URL is onjuist';
	}
}
?>
<form method="POST">

<label for="url">Page URL:</label></td><td width="20"></td><td><input type="text" name="url" id="url" size="40" maxlength="150" value="http://" />

<button name="add">Check</button>
</form>


regel 16 vervangt jou pregmatch.

Er gaat trouwens iets mis met je styling als je label gebruikt (correct) icm table (incorrect).
Als je je label goed styled met css, heb je dat table gebeuren niet nodig.
Ik heb een berichtje gestuurd, mijn table is basic. Maar de check is erg belangrijk nu.

Dank voor de informatie tot nu toe!

Reageren