开始使用facebook应用程序

时间:2011-01-16 20:42:58

标签: facebook

我对Facebook应用程序开发真的很陌生,我对应用程序权限以及为什么php sdk如此限制以及预编码功能如此之少感到困惑。

首先,我如何检查用户是否为我的应用程序设置了适当的权限,如果没有,立即显示该标准对话框而不是使用FBML并让他们点击链接?

其次,如何使用php apis发布到用户的流?

最后,有没有很好的教程网站来制作基于php的画布应用程序,它使用所有sdks的最新版本?

感谢您的帮助!我真的不明白为什么这么多是Javascript,对我这样做会更有意义:if(!$facebook->appHasPerm('publish_stream'){$facebook->showPermDialog('publish_stream');}

如果它能像那样起作用,我觉得我对应用程序有更多的控制权。

2 个答案:

答案 0 :(得分:1)

我刚开始使用fb应用程序一周前,我找到的最好,最有帮助的指南就是这个:

http://thinkdiff.net/facebook/graph-api-iframe-base-facebook-application-development/

您还可以在该指南的fbmain.php中找到一个出色的登录功能。

- 迈克尔

答案 1 :(得分:0)

我使用此代码进行身份验证。

<?php 
$app_id = 'API_ID';
$app_sec = 'SECRETE';
$canvas_page = 'CANVAS_URL';
$scope = '&scope=user_photos,email,publish_stream';
$auth_url = "http://www.facebook.com/dialog/oauth?client_id=" 
    . $app_id . "&redirect_uri=" . urlencode($canvas_page).$scope;
$signed_request = $_REQUEST["signed_request"];
list($encoded_sig, $payload) = explode('.', $signed_request, 2); 
$data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);
if (empty($data["user_id"])) {  
echo("<fb:redirect url='".$auth_url."' />");
}
$access_token = $data['oauth_token'];
$user_id = $data["user_id"];
$user = json_decode(file_get_contents(
'https://graph.facebook.com/me?access_token=' .
$access_token));
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 => $value) {
if ($key != 'sig') {
  $payload .= $key . '=' . $value;
}
}
if (md5($payload . $application_secret) != $args['sig']) {
return null;
}
return $args;
}
$cookie = get_facebook_cookie($app_id, $app_sec);
//facebook application
//set facebook application id, secret key and api key here
$fbconfig['appid' ] = "APP_ID";
$fbconfig['api'   ] = "API";
$fbconfig['secret'] = "SECRETE";
//set application urls here
$fbconfig['baseUrl']    =   "BASE_URL";
$fbconfig['appBaseUrl'] =   "APP_BASE_URL";
$uid=   null; //facebook user id
try{
require_once "facebook.php";
}
catch(Exception $o){
 echo '<pre>';
print_r($o);
echo '</pre>';
}
// Create our Application instance.
$facebook = new Facebook(array(
  'appId'  => $fbconfig['appid'],
  'secret' => $fbconfig['secret'],
  'cookie' => true,
 ));
?>

要发布到墙上

require_once 'authentication.php';
require_once "facebook.php";
$attachment = array('message' => 'some message',
                    'name' => 'name',
                    'caption' => "caption",
                    'link' => 'http://example.com/',
                    'description' => 'description',
                    'actions' => array(array('name' => 'name', 'link' =>       'http://example.com/')) );
 $result = $facebook->api('/me/feed?access_token='.$access_token, 'post', $attachment);