yii开发, Facebook api 互联登录,请教流程

8673 2014-08-13 12:38:12
yii开发, Facebook api 互联登录,请教一下具体流程?
...全文
266 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
傲雪星枫 2014-08-14
  • 打赏
  • 举报
回复
policy都要
8673 2014-08-14
  • 打赏
  • 举报
回复
引用 6 楼 fdipzone 的回复:
你開app時,domain有寫對嗎? 要domain匹配才可以的。
domain 写的是我的网站名称(未上线的)http://wenjing.com facebook API 需要配置那几个地方? 我配置的有1:app id 2.app secret 3. display name(khyangringwow) 4.namespace(khyangringwow) app domians(wenjing.com) 5.canvas page (http://apps.facebook.com/khyangwow) 6.canvas url(http://wenjing.com/app/login/fb/ 我在项目中的回调url也是这个) 7.valid oauth redirect urls(http://wenjing.com/app/login/fb)
傲雪星枫 2014-08-14
  • 打赏
  • 举报
回复
你開app時,domain有寫對嗎? 要domain匹配才可以的。
8673 2014-08-14
  • 打赏
  • 举报
回复
引用 4 楼 fdipzone 的回复:
facebook session获取 sdk会做,不用自己写。 sdk应该包含以下三个文件 base_facebook.php facebook.php fb_ca_chain_bundle.crt

<?php
include "facebook.php";
$oFacebook = new Facebook(array(
				'appId'			=>	'xxx',
				'secret'		=>	'xxx',
				'cookie'		=>	true,
				'fileUpload'	=>	true
			));

$user = $oFacebook->getUser();
if($user){
	try{
		$user_profile = $oFacebook->api('/'.$user);	//判斷是否獲取到用戶信息
	} catch (FacebookApiException $e){
		$user = null;
	}
	if($user){
		return $user;	//返回用戶id
	}
}else{
	$loginUrl = $oFacebook->getLoginUrl(array(
							'scope'			=>	'xxxx', // 这里填权限,要获取的东西 例如 publish_stream,user_photos,email,offline_access,user_birthday,user_notes
							'redirect_uri'	=>	'xxx'   // 这里填在facebook login后要回跳的地址
						));
	return $loginUrl;
}
?>
得到$loginUrl后,跳转到这个地址 当facebook 登入成功后,会返回到 redirect_uri这个地址,并把参数带回 redirect_uri php可以这样写

<?php
  $userid = $oFacebook->getUser();

  $facebook_accesstoken = $facebook->getAccessToken();
  echo $facebook_accesstoken.'<br>';

	try{
		$param = array(
			'method'		=>	'fql.query',
			'query'			=>	"SELECT 'uid,name,pic,pic_square,email,sex,birthday_date' FROM user WHERE uid='".$userid."'",
			'access_token'	=>	$facebook_accesstoken
		);
		$result = oFacebook->api($param);
	} catch(FacebookApiException $e){
		return array();
	}

	if($result){
		$user_profile = array();
		foreach($result[0] as $key=>$val){
			$user_profile[$key] = $val;
		}
		return $user_profile;
	}else{
		return array();
	}		
	print_r($result);
?>
剩下的就是自己服务器那边的操作了。
引用 4 楼 fdipzone 的回复:
facebook session获取 sdk会做,不用自己写。 sdk应该包含以下三个文件 base_facebook.php facebook.php fb_ca_chain_bundle.crt

<?php
include "facebook.php";
$oFacebook = new Facebook(array(
				'appId'			=>	'xxx',
				'secret'		=>	'xxx',
				'cookie'		=>	true,
				'fileUpload'	=>	true
			));

$user = $oFacebook->getUser();
if($user){
	try{
		$user_profile = $oFacebook->api('/'.$user);	//判斷是否獲取到用戶信息
	} catch (FacebookApiException $e){
		$user = null;
	}
	if($user){
		return $user;	//返回用戶id
	}
}else{
	$loginUrl = $oFacebook->getLoginUrl(array(
							'scope'			=>	'xxxx', // 这里填权限,要获取的东西 例如 publish_stream,user_photos,email,offline_access,user_birthday,user_notes
							'redirect_uri'	=>	'xxx'   // 这里填在facebook login后要回跳的地址
						));
	return $loginUrl;
}
?>
得到$loginUrl后,跳转到这个地址 当facebook 登入成功后,会返回到 redirect_uri这个地址,并把参数带回 redirect_uri php可以这样写

<?php
  $userid = $oFacebook->getUser();

  $facebook_accesstoken = $facebook->getAccessToken();
  echo $facebook_accesstoken.'<br>';

	try{
		$param = array(
			'method'		=>	'fql.query',
			'query'			=>	"SELECT 'uid,name,pic,pic_square,email,sex,birthday_date' FROM user WHERE uid='".$userid."'",
			'access_token'	=>	$facebook_accesstoken
		);
		$result = oFacebook->api($param);
	} catch(FacebookApiException $e){
		return array();
	}

	if($result){
		$user_profile = array();
		foreach($result[0] as $key=>$val){
			$user_profile[$key] = $val;
		}
		return $user_profile;
	}else{
		return array();
	}		
	print_r($result);
?>
剩下的就是自己服务器那边的操作了。
facebook API 提示用户没有授权第三方登录?
傲雪星枫 2014-08-13
  • 打赏
  • 举报
回复
与yii没关 首先去facebook开一个app,得到app id与 app_secret 然后下载facebook api 的sdk 之后按文档做就可以了。 https://developers.facebook.com/docs/reference/php/4.0.0
somfy 2014-08-13
  • 打赏
  • 举报
回复
lz厉害呀,不会帮顶
傲雪星枫 2014-08-13
  • 打赏
  • 举报
回复
facebook session获取 sdk会做,不用自己写。 sdk应该包含以下三个文件 base_facebook.php facebook.php fb_ca_chain_bundle.crt

<?php
include "facebook.php";
$oFacebook = new Facebook(array(
				'appId'			=>	'xxx',
				'secret'		=>	'xxx',
				'cookie'		=>	true,
				'fileUpload'	=>	true
			));

$user = $oFacebook->getUser();
if($user){
	try{
		$user_profile = $oFacebook->api('/'.$user);	//判斷是否獲取到用戶信息
	} catch (FacebookApiException $e){
		$user = null;
	}
	if($user){
		return $user;	//返回用戶id
	}
}else{
	$loginUrl = $oFacebook->getLoginUrl(array(
							'scope'			=>	'xxxx', // 这里填权限,要获取的东西 例如 publish_stream,user_photos,email,offline_access,user_birthday,user_notes
							'redirect_uri'	=>	'xxx'   // 这里填在facebook login后要回跳的地址
						));
	return $loginUrl;
}
?>
得到$loginUrl后,跳转到这个地址 当facebook 登入成功后,会返回到 redirect_uri这个地址,并把参数带回 redirect_uri php可以这样写

<?php
  $userid = $oFacebook->getUser();

  $facebook_accesstoken = $facebook->getAccessToken();
  echo $facebook_accesstoken.'<br>';

	try{
		$param = array(
			'method'		=>	'fql.query',
			'query'			=>	"SELECT 'uid,name,pic,pic_square,email,sex,birthday_date' FROM user WHERE uid='".$userid."'",
			'access_token'	=>	$facebook_accesstoken
		);
		$result = oFacebook->api($param);
	} catch(FacebookApiException $e){
		return array();
	}

	if($result){
		$user_profile = array();
		foreach($result[0] as $key=>$val){
			$user_profile[$key] = $val;
		}
		return $user_profile;
	}else{
		return array();
	}		
	print_r($result);
?>
剩下的就是自己服务器那边的操作了。
8673 2014-08-13
  • 打赏
  • 举报
回复
引用 2 楼 fdipzone 的回复:
与yii没关 首先去facebook开一个app,得到app id与 app_secret 然后下载facebook api 的sdk 之后按文档做就可以了。 https://developers.facebook.com/docs/reference/php/4.0.0
我看了facebook php 文档 ,身份验证这一块我不懂,能不能指定下我 FacebookRedirectLoginHelper是在我的应用程序中使用吗?FacebookSession获取也是在我的应用程序中使用吗? (实习生)

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧