2012-10-10 12 views
5

私はFacebook SDKを使用して自分のFacebookページに壁紙を貼り付けています。私が望むのは、PHP CRONスクリプトを使用して8時間ごとにFacebookページに投稿することです。Facebookのログインダイアログページをバイパスする必要があるので、誰でもコマンドラインからの認証方法を知っていますか?ログインダイアログページなしでfacebook sdkを認証する方法は?

答えて

2

Authenticating as a Pageあなたのデータベースに保存し、PHPを使用してさまざまなタスクを実行できるアクセストークンを提供します。

これは、投稿をスケジュールする、複数のページを管理する、一度に複数のページに投稿する、写真をアップロードする、その他多くのアクティビティをGraph APIを使用してアップロードするなど、さまざまなことに役立ちます。それを行う方法の詳細については、ドキュメントを確認してください。

注:アプリケーションを一度認証してページアクセストークンキーを保存するだけで、再度ログインする必要はなく、アクセストークンを使用してページ上でさまざまなタスクを実行できます。

+0

トークンの有効期限はありませんか? –

+0

はい、期限が切れます。しかし、APIコールを作成してトークンを拡張し、長寿命のトークン(最大60日間有効)を取得してから、データベースに保存することができます。 –

-1

いいえ、Facebookログインダイアログページをバイパスする方法はありませんが、あなたの場合は、拡張アクセスキーを取得して壁に投稿するために使用することができます。 あなたが

$extendedToken = $facebook->setExtendedAccessToken(); 
$facebook->api('<PAGE_ID>?fields=access_token'); 

は、単にあなたのページに投稿し

$facebook->setAccessToken();

を使用するアクセストークンを取得するためにPHP SDKを使用して、次のコードを使用することができます。拡張アクセストークンを生成する前に、必ずアクセス許可を取得してください。

2

FacebookがFacebookのアプリを使用するためのアクセストークンを提供します。初めて、ユーザーはFacebookのログインを使用してログインしなければなりません。サイトにログインした後、アプリケーションにアクセスする許可が求められます。ユーザーが同意すると、facebookはあなたにコードを返します。あなたは、コードを取得し、$トークンは、ユーザーのアクセストークンを持つことになります、uはウルローカルDBにそのトークンを格納することができますここでは、次のコード

$url = "https://graph.facebook.com/oauth/access_token?client_id=". $yourappId ."&redirect_uri=". urlencode($this->redirect_url) ."&client_secret=". $youappsecret."&code=". $code; 
$auth_token = $this->getContents($url); 

$str = explode('=',$auth_token); 
$token = explode('&expires', $str[1]); 

を使用して

アクセストークンを取得するためにそれを使用する必要があるとそのトークンを使用してメッセージをFacebookの壁に投稿します。その単純な.. thatsすべて。 Fbのウォールにメッセージを投稿する

ここ
$fb_id  = "User_fb_id" 
$access_token = "User_Access_Token_Take by Above code" 
$msg  = "Message_to_post" 
$img_path  = "Image_Path"  
$facebook = new Facebook(array(
'appId' => $this->appId, 
'secret' => $this->secret, 
'cookie' => true)); 
if($msg != NULL) { 
$attachment = array(
'message' => $msg, 
'name' => 'NHM',             
'picture' => $img_path); 
} 
try {$result = $facebook->api('/'. $fb_id . '/feed/', 
            'post', 
            $attachment); 

       if(isset($result['id'])) 
       return true; 
      else 
       return false; 
      } catch(FacebookApiException $e) { 
      return $e->getMessage(); 
     } 

は、ユーザーのFacebookユーザーIDを持っています。ユーザーIDを取得するには、次のコードを使用してください。

$url = "https://graph.facebook.com/me?access_token=". $access_token; 
$userInfo = $this->getContents($url); 
$userInfo = json_decode($userInfo, true); 


public function getContents($url) { 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,$url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$content = curl_exec ($ch); 
curl_close ($ch); 
return $content; 
} 

これを試してください。教えてください問題がある場合

+0

$ this-> getContentsとは何ですか?facebook SDKでこのようなメソッド名が見つかりません –

+0

getContents関数を追加しました。その1つを紛失して申し訳ありません。 –

+0

functionを呼び出す代わりに、コードを直接配置することができます。 –

関連する問題