オンライン/ログインなしでユーザーの壁への公開 - グラフAPIを使用したFacebook共有

StackOverflow https://stackoverflow.com/questions/4814432

質問

こんにちは私はFacebook共有に初めてです。ユーザーをUIDを使用してログインしてから、さらに使用するために保存したい

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

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

これに関する助けがどのように感謝されているのでしょうか!

編集

与えられた例を使用してから、カール機能を試しました

このエラーがありました

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 *****"
)
役に立ちましたか?

解決

FacebookグラフAPIが最初にどのように機能するかを学び始めることをお勧めします。

  1. Facebookはします 一度もない ユーザーパスワードを共有してください!
  2. ユーザーにリンクを共有する可能性を提供する必要がある場合は、 プラグインのように. 。あなたももっと面白いと思うかもしれません ソーシャルプラグイン あなたのウェブサイトで使用します。
  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"));

js-sdkを通して fb.login 方法:

 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はユーザーが開始する共有モデルを推奨することを常に覚えておいてください

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top