<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Jan Fanslau &#187; facebook</title>
	<atom:link href="http://www.jan-fanslau.de/category/facebook/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jan-fanslau.de</link>
	<description></description>
	<lastBuildDate>Tue, 23 Nov 2010 14:23:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Facebook &#8211; Post an Fanpage &#8211; Wall</title>
		<link>http://www.jan-fanslau.de/facebook/facebook-post-an-fanpage-wall/</link>
		<comments>http://www.jan-fanslau.de/facebook/facebook-post-an-fanpage-wall/#comments</comments>
		<pubDate>Fri, 27 Aug 2010 13:12:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[facebook]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[Lösung]]></category>
		<category><![CDATA[Nerd Stuff]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.jan-fanslau.de/?p=583</guid>
		<description><![CDATA[Wenn Ihr von eurer Webseite aus auf eine Fanpage-Wall posten wollt, dann habt Ihr hier ein kleines Tutorial: 1. Bei Facebook anmelden (http://www.facebook.com) 2. Eine neue Facebook-App erstellen (http://www.facebook.com/developers/createapp.php) 3. Der App muss nun ein Name gegeben werden und die Sicherheitsabfrage muss ausgefüllt werden 4. Wichtig sind jetzt die Anwendungs ID (Application ID) und der [...]]]></description>
			<content:encoded><![CDATA[<p>Wenn Ihr von eurer Webseite aus auf eine Fanpage-Wall posten wollt, dann habt Ihr hier ein kleines Tutorial:</p>
<p>1. Bei Facebook anmelden (http://www.facebook.com)</p>
<p>2. Eine neue Facebook-App erstellen (http://www.facebook.com/developers/createapp.php)</p>
<p>3. Der App muss nun ein Name gegeben werden und die Sicherheitsabfrage muss ausgefüllt werden</p>
<p>4. Wichtig sind jetzt die Anwendungs ID (Application ID) und der API-Schlüssen (API-Key)<br />
<span id="more-583"></span><br />
5. In eurem PHP-Code müsst Ihr jetzt folgende Codes einfügen</p>
<pre><code class="php">&lt;?php

define('FACEBOOK_APP_ID', 'XXXXXXXXXXXXXX'); #APPLICATION ID
define('FACEBOOK_SECRET', 'XXXXXXXXXXXXXX'); #API-KEY

function get_facebook_cookie($app_id, $application_secret) {
$args = array();
parse_str(trim($_COOKIE['fbs_' . $app_id], '\"'), $args);
ksort($args);
$payload = '';
foreach ($args as $key =&amp;gt; $value) {
if ($key != 'sig') {
$payload .= $key . '=' . $value;
}
}
if (md5($payload . $application_secret) != $args['sig']) {
return null;
}
return $args;
}

$cookie = get_facebook_cookie(FACEBOOK_APP_ID, FACEBOOK_SECRET);

?&gt;</code></pre>
<p>5. So als nächstes solltet Ihr noch ein Snippet schreiben das checkt ob Ihr bei Facebook eingeloggt seid:</p>
<pre><code>&lt;?php if ($cookie) { ?&gt;
      Your user ID is &lt;?= $cookie['uid'] ?&gt;
    &lt;?php } else { ?&gt;
      &lt;fb:login-button perms="publish_stream"&gt;&lt;/fb:login-button&gt;
    &lt;?php } ?&gt;</code></pre>
<p>6. Damit der FB-Login-Button anständig gerendert wird muss in euren HTML-Quelltext direkt nach &lt;body&gt;:</p>
<pre><code>&lt;div id="fb-root"&gt;&lt;/div&gt;
&lt;script&gt;
//XXX = Facebook App - ID
  window.fbAsyncInit = function() {
    FB.init({
      appId  : 'XXXXXXXXXXXXXXXX',
      status : true, // check login status
      cookie : true, // enable cookies to allow the server to access the session
      xfbml  : true  // parse XFBML
    });
  };

  (function() {
    var e = document.createElement('script');
    e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
    e.async = true;
    document.getElementById('fb-root').appendChild(e);
  }());
&lt;/script&gt;</code></pre>
<p>7. Ihr braucht eine Funktion die für euch den Request an die Graph-Api von Facebook stellt:</p>
<pre><code>function makeRequest($url, $params, $ch=null) {
if (!$ch) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
}</code>

$opts = array(
CURLOPT_CONNECTTIMEOUT =&gt; 10,
CURLOPT_RETURNTRANSFER =&gt; true,
CURLOPT_TIMEOUT        =&gt; 60,
CURLOPT_USERAGENT      =&gt; 'facebook-php-2.0',
);
$opts[CURLOPT_POSTFIELDS] = http_build_query($params, null, '&amp;');
$opts[CURLOPT_URL] = $url;
print_r($opts);
curl_setopt_array($ch, $opts);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}</pre>
<p>8. So und als letztes fehlt noch der Aufruf der den Request abschickt und die Daten an Facebook übermittelt.</p>
<pre><code>$params['message'] = 'This is a test';
		$params['access_token']=$cookie['access_token'];
		$url = 'https://graph.facebook.com/XXXXXXXXXXXXX/feed'; #XXXXXXXX = ID der Fanpage
		//print_r(makeRequest($url, $params));
	//	print_r(json_decode(file_get_contents($url)));
		print_r(makeRequest($url, $params));</code></pre>
<p>Ich werde das wenn ich mal ein bischen Ruhe habe, in eine schöne downloadbare Version hacken. Bis dahin hoffe ich, dass ihr mit dem Code was anfangen könnt.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jan-fanslau.de/facebook/facebook-post-an-fanpage-wall/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Facebook &#8211; Connect: Image Upload mit PHP SDK</title>
		<link>http://www.jan-fanslau.de/codeschnipsel/facebook-connect-image-upload-mit-php-sdk/</link>
		<comments>http://www.jan-fanslau.de/codeschnipsel/facebook-connect-image-upload-mit-php-sdk/#comments</comments>
		<pubDate>Mon, 10 May 2010 08:07:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Codeschnipsel]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[connect]]></category>

		<guid isPermaLink="false">http://www.jan-fanslau.de/?p=532</guid>
		<description><![CDATA[Der Image Upload mit der graph-api von Facebook ist ziemlich einfach und gut zu benutzen: Nachfolgend gibts zwei Codeschnipsel mit dem man A. Alben anlegt und B. Photos hochlädt. Dazu habe ich mir die Graph-PHP-Api ein bischen erweitert. private function createAlbum(){ $params = array(); if (!isset($params['access_token'])) { $session = $this-&#38;gt;getSession(); // either user session signed, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" style="padding-right: 10px;" title="Facebook" src="http://farm1.static.flickr.com/225/503165914_a680a56c77_m_d.jpg" alt="" width="240" height="90" />Der Image Upload mit der graph-api von Facebook ist ziemlich einfach und gut zu benutzen:</p>
<p>Nachfolgend gibts zwei Codeschnipsel mit dem man A. Alben anlegt und B. Photos hochlädt. Dazu habe ich mir die Graph-PHP-Api ein bischen erweitert.<span id="more-532"></span></p>
<pre><code>private function createAlbum(){
 $params = array();
 if (!isset($params['access_token'])) {
 $session = $this-&amp;gt;getSession();
 // either user session signed, or app signed
 if ($session) {
 $params['access_token'] = $session['access_token'];
 } else {
 // TODO (naitik) sync with abanker
 //$params['access_token'] = $this-&amp;gt;getAppId() .'|'. $this-&amp;gt;getApiSecret();
 }
 }
 $params['name'] = "test";
 $params['message'] = "my new Test-Album";
 $url ="https://graph.facebook.com/me/albums";
 return $this-&amp;gt;makeRequest($url, $params);
 }</code></pre>
<p>Bildupload zu Facebook</p>
<pre><code>private function uploadImageData($albumId, $image){

 $params = array();
 if (!isset($params['access_token'])) {
 $session = $this-&amp;gt;getSession();
 // either user session signed, or app signed
 if ($session) {
 $params['access_token'] = $session['access_token'];
 } else {
 // TODO (naitik) sync with abanker
 //$params['access_token'] = $this-&amp;gt;getAppId() .'|'. $this-&amp;gt;getApiSecret();
 }
 }

 $file= $image;
 $args = array(
 'message' =&amp;gt; 'Photo from application',
 );
 $args[basename($file)] = '@' . realpath($file);
 $ch = curl_init();
 $url ="https://graph.facebook.com/".$albumId."/photos?access_token=".$params['access_token'];
 curl_setopt($ch, CURLOPT_URL, $url);
 curl_setopt($ch, CURLOPT_HEADER, false);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 curl_setopt($ch, CURLOPT_POST, true);
 curl_setopt($ch, CURLOPT_POSTFIELDS, $args);
 $data = curl_exec($ch);
 //returns the photo id
 print_r(json_decode($data,true));
 }</code></pre>
<p>Ich hoffe Ihr könnt Damit was anfangen. Sicherlich gibts später noch mehr dazu.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jan-fanslau.de/codeschnipsel/facebook-connect-image-upload-mit-php-sdk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

