我在我的网站上使用PHP创建了一个Facebook App。要在我的网站上使用此应用程序,用户必须使用Facebook身份验证登录。
此应用程序基本上允许用户在他的墙上发布默认评论。它使用我的Facebook个人资料帐户工作正常,但当我让我的朋友使用我的网站时,他收到以下错误 - '未捕获OAuthException:(#200)用户尚未授权应用程序执行此操作投入'
直到现在我发现的问题的唯一解决方法是输入以下网址 -
https://www.facebook.com/login.php?api_key=API_KEY&cancel_url=http://www.magimagi.com&next=http://magimagi.com/login/uploadtopage2.php&fbconnect=1&return_session=1&session_version=3&v=1.0&display=page&req_perms=user_about_me,user_birthday,publish_stream,offline_access
我不想在我的应用上创建一个链接供用户点击它 - 而是我希望它集成到我网站上的PHP代码中。
以下是我的PHP代码示例
/ Get User ID
$user = $facebook->getUser();
if ($user) {
try {
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
if ($user) {
$logoutUrl = $facebook->getLogoutUrl();
} else {
$loginUrl = $facebook->getLoginUrl( array(
'scope' => 'publish_stream'
));
}
这是HTML
<form id="selectFriend" name="selectFriend" method="post">
<label for="Friend">Friend:</label>
<select id="friend" name="friend">
<?php
foreach($user_friends['data'] as $f){
echo '<option value="'.$f['id'].'">'.$f['name'] .'</option>';
}
?>
</select>
<label for="URL">URL:</label>
<input id="link" name="link">
<input id="message" name="message">
<input type="submit" name="submit" id="submit" value="Send!">
我几乎阅读了所有文档等等......但不幸的是我没有管理。
我想知道为什么使用我的个人资料它正在工作,而不是在其他人工作&#39;轮廓。
我还是初学者所以请保存你的侮辱!
答案 0 :(得分:0)
根据我的意见,您的代码已经过时了 - 您在调用Auth对话框中使用的参数(特别是req_perms
)已于2011年10月弃用 - 当前(手动)方法重定向到auth对话框是:
https://www.facebook.com/dialog/oauth?
client_id=YOUR_APP_ID
&redirect_uri=YOUR_REDIRECT_URI
&scope=COMMA_SEPARATED_LIST_OF_PERMISSION_NAMES
&state=SOME_ARBITRARY_BUT_UNIQUE_STRING
PHP SDK的getLoginUrl()方法会将用户发送到那里,当您的代码处理code
返回时,它将获得一个access_token
,可用于代表a进行调用用户
有关完整服务器端流程,请参阅https://developers.facebook.com/docs/authentication/server-side/