[PHP]FB App funktioniert nicht

08/22/2012 19:59 Mayesters#1
Hi,

habe versucht, eine FB App zu programmieren, funktioniert auch, bis auf die Seite, die aufgerufen wird, wenn man die Seite geliked hat. Code:
PHP Code:
<?php ?>
<!DOCTYPE html>
<html lang="en">
<head>
<title>This Page is Liked!</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=no" />
<style type="text/css">
body {
overflow:visible;
overflow-x:hidden;
}
</style>
<script type='text/javascript'>
window.fbAsyncInit = function() {
FB.Canvas.setSize({ width: 520, height: 1000 });
}
function sizeChangeCallback() {
FB.Canvas.setSize({ width: 520, height: 1000 });
}
</script>
</head>
<body>


<?PHP
   
$randomimg 
"\"http://sdfsdfsdfsdfsdfds.herokuapp.com//randim.php\""
<html><body><img src=<?php $randomimg ?>></body></html>
    $request['message'] = "Cool! Diese Konsole passt zu mir. Schau doch auch, welche Konsole zu dir passt!";
    $request['link'] = "https://www.facebook.com/pages/XXXX-ftXXXXw/15704XXXXXXXXX86?sk=app_1XXXXXXXXXXX285";
    $request['name'] = "Welche Konsole passt zu mir?";
    $request['image'] = $randomimg;
    $request['description'] = "https://www.facebook.com/pages/XXX-fXXw/15XXXXXXXXXXXXX6?sk=app_1XXXXXXXXXxx5";
    try{
      $response = $facebook->api('/me/feed',"POST",$request);
    }
    catch(FacebookApiException $ex){
      ?>
        <script>window.top.location = 'http://graph.facebook.
 com/oauth/authorize?cli
 ent_id=<?PHP echo 
 
$facebook->getAppId(); 
 
?>&redirect_uri=http://apps.facebook.com/XXXXXXXtapp&scope=publish_stream' </script>
      <?PHP
    
}
  
?>
<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>
FB.init({
appId : 'XXXXXXXXXXX',
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
</script>
</body>
</html>
Wenn es aufgerufen wird, kommt aber nur:
PHP Code:
$request['message'] = "Cool! Diese Konsole passt zu mir. Schau doch auch, welche Konsole zu dir passt!"$request['link'] = "https://www.facebook.com/pages/XXXXX-ftXXXw/1570XXXXXXXx86?sk=app_1XXXXXX5"$request['name'] = "Welche Konsole passt zu mir?"$request['image'] = $randomimg$request['description'] = "https://www.facebook.com/pages/GXXXXng-fXXXXXXXXXXXXXXX6?sk=app_17XXXXXXXXXXXX85"; try{ $response $facebook->api('/me/feed',"POST",$request); } catch(FacebookApiException $ex){ ?> 
Bei FB, mehr nicht. Ka, worans lietg. randim.php erzeugt ein zufälliges Bild, die Variable sollte der Link dazu in "" sein.

Bitte um Hilfe.

MfG
Mayesters
08/22/2012 20:19 kissein#2
Besser/Sauber einrücken, ist ein graus das zu debuggen

PHP Code:
<?PHP //<- hier wird PHP gestartet
    
$randomimg "\"http://sdfsdfsdfsdfsdfds.herokuapp.com//randim.php\""  //<- was sollen die Slash hier ? Eine Anweisung wird mit einem Semikolon beendet
<html><body><img src=<?php //<- hier wird nochmals PHP gestartet, warum ??
 
$randomimg ?>></body></html>
08/23/2012 04:19 ιcσяє#3
Quote:
Originally Posted by kissein View Post
Besser/Sauber einrücken, ist ein graus das zu debuggen
@Mayesters
Aua meine Augen...

@kissein
wo du recht hast hast du recht...

@Mayesters
wenn man den quell nicht einrückt und unübersichtlich macht kannst du es gleich sein lassen immer schön Kommentare schreiben und einrücken...

PS: Du hast sehr viele syntax Fehler drin benutzt du kein Adobe Dreamweaver, Webocton - Scriptly und meinetwegen vielleicht Notepad++ ?

Kommt mir so vor als benutzt du Windows Editor xD
08/23/2012 18:49 MrSm!th#4
#moved
08/24/2012 15:36 Mayesters#5
Also, da es so einfach nicht funktionieren wollte, habe ich nochmal gegooglt, bin auf diesen Code gestoßen:
PHP Code:
<?php
require_once facebook.php
$randomimg 
"https://XXXXXX.herokuapp.com/randim.php"

function facebook()
{
 if(isset(
$_REQUEST['signed_request']))
 {
  
$encoded_sig null;
  
$payload null;
  list(
$encoded_sig$payload) = explode('.',$_REQUEST['signed_request'],2);
  
$sig base64_decode(strtr($encoded_sig,'-_','+/'));
  
$data json_decode(base64_decode(strtr($payload,'-_','+/'),true));
  return 
$data;
 }
 return 
false;
}

$fbconfig['appid']  = "XXXXXXXXXXXXXX";
$fbconfig['secret'] = "XXXXXXXXXXXXXXX"


$facebook = new Facebook(array(
 
'appId'  => $fbconfig['appid'],
 
'secret' => $fbconfig['secret'],
    
'cookie'    => true,
 
'domain' => 'XXXXXXXXXXXX.herokuapp.com'
));

$session $facebook->getSession();
if(
$session)
{  
 try
 {  
  
$fbme $facebook->api('/me');
 }
 catch(
FacebookApiException $e)
 {
  echo 
'error bei getsession';
 }  
//if($session)

#permissions
if(!$fbme)
{
 
#access permission
 
$loginUrl $facebook->getLoginUrl(array(
  
'canvas'     => 1,
  
'fbconnect'  => 0,
  
'req_perms'  => 'publish_stream',
  
'next'       => 'https://XXXXXx.herokuapp.com/index.php',
  
'cancel_url' => 'https://XXXXXXXXXx.herokuapp.com/'
 
));
 echo 
'<script type="text/javascript">top.location.href=\''.$loginUrl.'\';</script>';
//else($fbme)

#wall post
try
{
 
$wallpost $facebook->api('/me/feed','post',array(
  
'name'        => 'Welche Konsole passt zu mir?',
  
'message'     => 'Cool! Ich habe gerade herausgefunden, welche Konsole zu mir passt! Probiers doch auch mal aus! Einfach hier klicken!',
  
'privacy'     => array(
   
'value'   => 'CUSTOM',
   
'friends' => 'FRIENDS_OF_FRIENDS'
  
),
  
'description' => 'Diese Konsole passt zu mir! Probier es auch aus! Klick einfach hier!',
  
'picture'     => $randomimg,
  
'caption'     => 'https://www.facebook.com/pages/XXXXXXXXXXXXXX',
  
'link'        => 'https://www.facebook.com/pages/XXXXXXXXXX',
  
'action'      => '';
 ));
 if(
$facebook->api('/me/feed/','post',$wallpost))
 {
  echo 
"Wenn du sehen möchtest, welche Konsole zu dir passt, dann schau auf der Startseite nach :) Es wurde für dich gepostet!";
 }
}
catch(
FacebookApiException $e)
{
 echo 
'facebook api exception';
}
?>

Wenn ich die App allerdings aufrufe, kommt nur das folgende:
Code:
$fbconfig['appid'], 'secret' => $fbconfig['secret'], 'cookie' => true, 'domain' => 'XXXXXXXX.herokuapp.com' )); $session = $facebook->getSession(); if($session) { try { $fbme = $facebook->api('/me'); } catch(FacebookApiException $e) { echo 'error bei getsession'; } } //if($session) #permissions if(!$fbme) { #access permission $loginUrl = $facebook->getLoginUrl(array( 'canvas' => 1, 'fbconnect' => 0, 'req_perms' => 'publish_stream', 'next' => 'https://XXXX.herokuapp.com/index.php', 'cancel_url' => 'https://XXXXXX.herokuapp.com/' )); echo ''; } //else($fbme) #wall post try { $wallpost = $facebook->api('/me/feed','post',array( 'name' => 'Welche Konsole passt zu mir?', 'message' => 'Cool! Ich habe gerade herausgefunden, welche Konsole zu mir passt! Probiers doch auch mal aus! Einfach hier klicken!', 'privacy' => array( 'value' => 'CUSTOM', 'friends' => 'FRIENDS_OF_FRIENDS' ), 'description' => 'Diese Konsole passt zu mir! Probier es auch aus! Klick einfach hier!', 'picture' => $randomimg, 'caption' => 'https://www.facebook.com/pages/XXXXX', 'link' => 'https://www.facebook.com/pages/XXXXXXXXXXx', 'action' => ''; )); if($facebook->api('/me/feed/','post',$wallpost)) { echo "Wenn du sehen m�chtest, welche Konsole zu dir passt, dann schau auf der Startseite nach :) Es wurde f�r idch gepostet!"; } } catch(FacebookApiException $e) { echo 'facebook api exception'; } ?>
Genau so als reiner Textoutput. Keine Ahnung woran das liegt....
08/24/2012 16:27 kissein#6
Dir fehlen wohl elementare Grundlagen für diese Sprache, daher vorab mal dieser Link
Quote:
[Only registered and activated users can see links. Click Here To Register...]
PHP Code:
require_once facebook.php <-- Falscher aufrufSemikolon fehlt
$randomimg 
"https://XXXXXX.herokuapp.com/randim.php" <-- Semikolon fehlt 
PHP Code:
require_once("facebook.php");
$randomimg "https://XXXXXX.herokuapp.com/randim.php"
08/24/2012 18:23 Mayesters#7
Ich habs jetzt geändert, selbes Problem wie vorher. Selber Text Output
08/24/2012 22:06 kissein#8
PHP Code:
<?php 
error_reporting
(E_ALL);
editiere mal den Anfang so wie dargestellt und schau ob/welche Fehlermeldung du erhälst.
08/24/2012 22:39 Mayesters#9
Gar nichts. Mein Code sieht jetzt wie folgt aus:
PHP Code:
<?php
error_reporting
(E_ALL);
require_once(
'facebook.php');
$randomimg "https://XXXXXXX.herokuapp.com/randim.php";
$facebook = new Facebook(array(
      
'appId'=>'XXXXX',
      
'secret'=>'XXXXXXXXXX',
    ));
$session $facebook->getUser();
if(
$session)
{  
 try
 {  
  
$fbme $facebook->api('/me');
 }
 catch(
FacebookApiException $e)
 {
  echo 
'error bei getsession';
 }  
//if($session)

#permissions
if(!$fbme)
{
 
#access permission
 
$loginUrl $facebook->getLoginUrl(array(
  
'canvas'     => 1,
  
'fbconnect'  => 0,
  
'req_perms'  => 'publish_stream',
  
'next'       => 'https://XXX.herokuapp.com/index.php',
  
'cancel_url' => 'https://XXXXX.herokuapp.com/'
 
));
 echo 
'<script type="text/javascript">top.location.href=\''.$loginUrl.'\';</script>';
//else($fbme)

#wall post
try
{
 
$wallpost $facebook->api('/me/feed','post',array(
  
'name'        => 'Welche Konsole passt zu mir?',
  
'message'     => 'Cool! Ich habe gerade herausgefunden, welche Konsole zu mir passt! Probiers doch auch mal aus! Einfach hier klicken!',
  
'privacy'     => array(
   
'value'   => 'CUSTOM',
   
'friends' => 'FRIENDS_OF_FRIENDS'
  
),
  
'description' => 'Diese Konsole passt zu mir! Probier es auch aus! Klick einfach hier!',
  
'picture'     => '$randomimg',
  
'caption'     => 'https://www.facebook.com/pages/Gaming-ftw/XXXX?sk=app_1XXXXXX',
  
'link'        => 'https://www.facebook.com/pages/Gaming-ftw/XXXXX?sk=app_XXXXX',
  
'action'      => '';
 ));
 if(
$facebook->api('/me/feed/','post',$wallpost))
 {
  echo 
"Wenn du sehen möchtest, welche Konsole zu dir passt, dann schau auf der Startseite nach :) Es wurde für idch gepostet!";
 }
}
catch(
FacebookApiException $e)
{
 echo 
'facebook api exception';
}
?>
Der Output sieht wie folgt aus:
Quote:
'XXXX', 'secret'=>'XXXXXX', )); $session = $facebook->getUser(); if($session) { try { $fbme = $facebook->api('/me'); } catch(FacebookApiException $e) { echo 'error bei getsession'; } } //if($session) #permissions if(!$fbme) { #access permission $loginUrl = $facebook->getLoginUrl(array( 'canvas' => 1, 'fbconnect' => 0, 'req_perms' => 'publish_stream', 'next' => 'https://XXXX.herokuapp.com/index.php', 'cancel_url' => 'https://XXXX.herokuapp.com/' )); echo ''; } //else($fbme) #wall post try { $wallpost = $facebook->api('/me/feed','post',array( 'name' => 'Welche Konsole passt zu mir?', 'message' => 'Cool! Ich habe gerade herausgefunden, welche Konsole zu mir passt! Probiers doch auch mal aus! Einfach hier klicken!', 'privacy' => array( 'value' => 'CUSTOM', 'friends' => 'FRIENDS_OF_FRIENDS' ), 'description' => 'Diese Konsole passt zu mir! Probier es auch aus! Klick einfach hier!', 'picture' => '$randomimg', 'caption' => 'https://www.facebook.com/pages/XXXXX', 'link' => 'https://www.facebook.com/XXXXX', 'action' => ''; )); if($facebook->api('/me/feed/','post',$wallpost)) { echo "Wenn du sehen m�chtest, welche Konsole zu dir passt, dann schau auf der Startseite nach :) Es wurde f�r idch gepostet!"; } } catch(FacebookApiException $e) { echo 'facebook api exception'; } ?>
Also genau wie vorher :(