2011-01-16 8 views
0

私はFacebookのアプリケーションの開発にはまったく新しいアプリです。アプリケーションの許可と、なぜphp sdkが制限されているのか、それほどプリコードされていない機能がほとんどないのは間違いです。Facebookのアプリケーションを始めよう

最初に、ユーザーが自分のアプリケーションに適切な権限を設定しているかどうかを確認し、そうでない場合はFBMLを使用せずにその標準ダイアログを表示し、リンクをクリックするようにしますか?

第2に、php apisを使用してユーザーのストリームに公開するにはどうすればよいですか?

最後に、すべてのSDKの最新バージョンを使用するPHPベースのキャンバスアプリケーションを作成するためのチュートリアルサイトがありますか?

ありがとうございました!私は本当になぜこれがJavascriptなのか見ていないのですが、実際には以下のようなことがあると私にははるかに意味があります。if(!$facebook->appHasPerm('publish_stream'){$facebook->showPermDialog('publish_stream');}

それ。私はちょうどFBを始め

+0

を公開するために、私は本当に私はここに非常に何かを明らかに欠けている明確な感覚を持っています。 – Cyclone

+0

FBのドキュメントが最悪で、そのAPIが完璧または完全ではないことに同意します。しかし、あなたの考えも理解できません。クライアント側の対話にはクライアント側の技術が必要です。サーバー側の言語から 'showPermDialog'を起動しますか? :-) – ifaour

+0

@ifaourそれは本当にFacebookにはありませんか? 'die'を使ってスクリプトの実行を終了し、api呼び出しを呼び出して適切なページにユーザを誘導します。 – Cyclone

答えて

1

は一週間前アプリと私が見つけた最良かつ最も参考になっガイドはこの1つだった:

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

またそのfbmain.phpに偉大なログイン機能を見つけることができますガイド。

-マイケル

+0

うわー、それは素晴らしいです!私はこれを試して見てみましょう! – Cyclone

+0

FBMLなしで作業したい場合は、あなた自身でダイアログを作成し、 '$ facebook-> api( '/ me/feed /'、 'post'、array( 'message' => 'あなたのメッセージ')); 'それらを提出する。 – Michael

+0

FBMLをiframe内でレンダリングする方法はありますか?前のシンプルなUIは既に設定されていましたが、iframeオプションで破られました。私はJQueryに取り組んでいますが、正式なfacebookのものを使うことができれば簡単です。 – Cyclone

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); 
関連する問題