!!! Listings zum Artikel "Kontaktaufnahme" !!! von Jan Krutisch in iX 10/2010, S. 38 !!! Listing 1: Externes über einen iframe !!! "iframe" bitte kursiv !!! Listing 2: Like-Button per XFBML Facebook Test
!!! Listing 3: Benutzernamen einfügen FB.getLoginStatus(function(response) { if (response.session) { FB.api('/me', function(response) { $('#user-name').html(response.name); }); } }); !!! Listing 4: Cookie-Überprüfung mit Ruby def facebook_cookie(cookie) return if cookie.nil? vars = Rack::Utils.parse_nested_query(cookie.sub(/^"(.*)"/,"\\1")) sig = vars.delete("sig") payload = vars.to_a.sort_by{|a| a.first }.map{|e| "#{e.first}=#{e.last}" }.join("") if Digest::MD5.hexdigest(payload + APP_SECRET) != sig return nil; else return vars; end end !!! Listing 5: Benutzung des access_token mit Ruby !!! "access_token" bitte kursiv escaped_token = Rack::Utils.escape(ACCESS_TOKEN) response = RestClient.get("https://graph.facebook.com/me?access_token=#{escaped_token}") @me = JSON.parse(response.body) !!! Listing 6: Zugriff auf die Graph-API mit OAuth und Ruby def client OAuth2::Client.new(APP_ID, APP_SECRET, :site => 'https://graph.facebook.com') end def redirect_uri uri = URI.parse(request.url) uri.path = '/auth/facebook/callback' uri.query = nil uri.to_s end get '/auth/facebook' do redirect client.web_server.authorize_url( :redirect_uri => redirect_uri, :scope => 'email,user_birthday,publish_stream' ) end get '/auth/facebook/callback' do access_token = client.web_server.get_access_token(params[:code], :redirect_uri => redirect_uri) session['access_token'] = access_token.token redirect "/" end !!! Listing 7: Erzeugen eine Access-Token mit OAuth if session['access_token'] @access_token = OAuth2::AccessToken.new(client, session['access_token']) end @graph = JSON.parse(@access_token.get("/me")) @friends = JSON.parse(@access_token.get("/me/friends")) !!! Listing 8: Verwendungh des Open Graph Protocol