开发者

Getting started with a facebook application

I'm really new to Facebook application development, and I'm quite confused about application permissions and why the php sdk is so limiting and has so few precoded functions.

First off, how do I check if a user has set proper permissions for my application, and if not, display that standard dialog immediately instead of using FBML and making them click the link?

Secondly, how do I publish to a user's stream with the php apis?

Finally, are there any good tutorial sites for making a php based canvas application that use the latest versions of all the sdks?

Thank you for your help! I really don't see why so much of this is Javascript, it would really make much more sense to me to have things like: if(!$facebook->appHasPerm('publish_stream'){$facebook->showPermDialog('publish_stream');}

开发者_JAVA技巧

I'd feel like I have much more control over the application if it worked like that.


I just started with fb apps a week ago and the best and most helpfull guide I found was this one:

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

You can also find a great login function in the fbmain.php of that guide.

-michael


I used this code for the authentication.

<?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,
 ));
?>

To publish to the wall

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);
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜