7

こんにちは私はFacebookの共有に不慣れです。ユーザーに自分のuidを使用してログインさせ、さらに使用するためにこれらを保存したい

主な目的は、ユーザーのウォールでリンクを共有することです

次回はFacebookウィンドウを表示せずに、ajaxを介して彼の壁に投稿したいと思います。

これに関する助けをいただければ幸いです。

編集

与えられた例を使用して、curl関数を試しました

このエラーが発生しました

HTTP/1.1 403 Forbidden
Cache-Control: no-store
Content-Type: text/javascript; charset=UTF-8
Expires: Sat, 01 Jan 2000 00:00:00 GMT
P3P: CP="Facebook does not have a P3P policy. Learn why here: http://fb.me/p3p"
Pragma: no-cache
WWW-Authenticate: OAuth "Facebook Platform" "insufficient_scope" "(#200) 
This API call requires a valid app_id."
Set-Cookie: datr=g4JBTb4OsRZxBAztV7iIkpWg; expires=Sat, 26-Jan-2013 14:34:43 GMT;
path=/; domain=.facebook.com; httponly
X-Cnection: close
Date: Thu, 27 Jan 2011 14:34:43 GMT
Content-Length: 93

{"error":{"type":"OAuthException","message":"(#200) 
This API call requires a valid app_id."}}

誰かが役に立つと思うように編集する

Facebookの接続

$facebook_connect =  array(
   'appId'  => 'YOUR APP_ID',
   'secret' => 'YOUR SEC KEY',
          'access_token'=>"USER'S ACCESS TOKEN",
   'cookie' => true
 );

ユーザーウォールへの投稿

$facebook->api("/PROFILE_ID/feed", "post", array(
"message"=>"Hi Friends Join ****",
"name"=>"You're invited to join ****!",
"link"=>"www.****.com",
"description"=>"Great site",
"picture"=>"http://www.****.com/logo.jpg",
"caption"=>"Join *****"
)
4

1 に答える 1

33

まず、FacebookGraphAPIがどのように機能するかを学び始めることをお勧めします。

  1. Facebookがユーザーパスワードをあなたと共有することは決してありません!
  2. ユーザーにリンクを共有する可能性を与える必要がある場合は、同様のプラグインを使用してください。また、Webサイトで使用するより興味深いソーシャルプラグインを見つけることができます。
  3. 同様のプラグインを使用すると、ポップアップは開かず、ユーザーのウォールに直接リンクが投稿されます。
  4. いつでもフィードダイアログを使用できます
  5. Facebookのドキュメントを読み始めます

ユーザーがログインせずに(ユーザーに代わって)ユーザーのウォールに投稿するには、次のものが必要です。

  1. アプリaccess_token
  2. publish_stream許可、長期アクセストークンは必要ありません

アプリがコンテンツ、コメント、いいねをユーザーのストリームとユーザーの友達のストリームに投稿できるようにします。これは、publish_actionsも含むスーパーセットの公開権限です。ただし、Facebookはユーザー主導の共有モデルを推奨していることに注意してください。プラットフォームポリシーを読んで、この権限を適切に使用する方法を理解してください。フィードダイアログ、リクエストダイアログ、または送信ダイアログを使用するために、publish_stream権限をリクエストする必要はないことに注意してください。

権限が必要です:
これは複数の方法で実行できます:ログインプラグイン
の使用:

<div class="fb-login-button" data-show-faces="true" data-width="200" data-scope="publish_stream" data-max-rows="1"></div>

サーバー側のログイン(OAuthダイアログにリダイレクト):

https://www.facebook.com/dialog/oauth?
     client_id=YOUR_APP_ID
     &redirect_uri=YOUR_URL
     &scope=publish_stream
     &state=SOME_ARBITRARY_BUT_UNIQUE_STRING

PHP-SDK

$loginUrl = $facebook->getLoginUrl(array("scope"=>"publish_stream"));

FB.loginメソッドによるJS-SDK :

 FB.login(function(response) {
   if (response.authResponse) {
     console.log('Welcome!  Fetching your information.... ');
     FB.api('/me', function(response) {
       console.log('Good to see you, ' + response.name + '.');
       FB.logout(function(response) {
         console.log('Logged out.');
       });
     });
   } else {
     console.log('User cancelled login or did not fully authorize.');
   }
 }, {scope: 'publish_stream'});

公開:

$USER_ID = "XXXXXXXX"; // Connected once to your APP and not necessary logged-in at the moment
$args = array(
    'message'   => 'Hello from app',
    'link'      => 'http://www.masteringapi.com/',
    'caption'   => 'Visit MasteringAPI.com For Facebook API Tutorials!'
);
$post_id = $facebook->api("/$USER_ID/feed", "post", $args);

注:
ユーザーの存在なしで投稿することは可能ですが、Facebookはユーザーが開始する共有モデルを推奨していることを常に忘れないでください

于 2011-01-27T12:12:42.833 に答える