我正在使用Facebook SDK在我自己的Facebook页面上发布一些测试墙贴。我想要的是每8小时使用PHP CRON脚本在我的Facebook页面上发布,因此我必须绕过Facebook登录对话框页面,所以有人知道从命令行或在空中进行身份验证的方式吗?如何在没有登录对话框页面的情况下验证facebook sdk?
回答
Authenticating as a Page会给你一个访问令牌,你可以将它保存在数据库中,然后使用PHP执行各种任务。
这对使用cron做各种事情很有帮助,比如安排帖子,维护多个页面,一次发布到多个页面,使用Graph API上传照片和其他许多活动。查看他们的文档,了解如何做到这一点的更多信息。
注意:您只需验证一次应用程序并保存您的页面访问令牌密钥,一旦您这样做,您不必再次登录,只需使用访问令牌在页面上执行各种任务。
不,无法绕过Facebook登录对话框页面,但对于您的情况,您可以检索扩展访问键并将其用于张贴到墙上。 您可以使用PHP SDK来获取访问令牌使用下面的代码
$extendedToken = $facebook->setExtendedAccessToken();
$facebook->api('<PAGE_ID>?fields=access_token');
然后只需使用
$facebook->setAccessToken();
张贴到你的页面。切记在生成扩展访问令牌之前获取权限。
Facebook为用户提供访问令牌以使用Facebook应用程序。对于第一次,用户必须通过Facebook登录登录,登录到网站后,它将要求访问该应用程序的权限。一旦用户接受,然后Facebook将返回一个代码throgh网址。你必须采取的代码,并用它来获得访问令牌
通过使用下面的代码
$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]);
这里$令牌将有用户的访问令牌,U可以在令牌存储在乌尔本地数据库和使用该令牌将消息发布到Facebook墙上。其简单..多数民众赞成在所有。
要发布的消息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;
}
试试这个。让我知道如果有任何问题
什么是$ this-> getContents我在facebook中找不到像这样的任何方法名称SDK –
我添加了函数getContents。对不起,错过了一个。 –
而不是调用函数,您可以直接放置代码。 –
- 1. 页面可以在没有登录验证的情况下登录
- 2. 如何在没有Facebook应用的情况下登录Facebook?
- 3. Android Facebook SDK,如何在没有登录表单的情况下打开会话
- 4. Android - > Facebook登录没有对话框?
- 5. 如何在没有用户干预的情况下登录Facebook?
- 6. 如何在没有页面设置对话框的情况下打印?
- 7. C#在没有登录的情况下在Facebook页面上发布
- 8. 的Facebook SDK登录对话框两次
- 9. Facebook的Android SDK登录对话框
- 10. 防止在没有登录的情况下打开页面
- 11. 验证Facebook SDK登录
- 12. 在没有用户身份验证的情况下发布Facebook页面链接
- 13. 如何在没有登录对话框的情况下将数据发布到Facebook墙上?
- 14. 如何在没有打开对话框的情况下发布在Facebook墙上?
- 15. 在没有用户登录的情况下弹出谷歌登录页面
- 16. 如何在没有通过Google登录对话框(javascript)登录的情况下访问Google analytics api?
- 17. 在没有登录的情况下发布到Facebook SDK的新闻源
- 18. 如何在没有弹出对话框的情况下退出Facebook?
- 19. 如何在没有登录或没有用户交互的情况下获取Facebook页面access_token
- 20. 未使用登录对话框的iPhone/Facebook身份验证
- 21. AngularJS + phonegap:在没有服务器的情况下访问Facebook登录/ SDK
- 22. 如何禁用Facebook登录对话框
- 23. 验证Facebook用户没有Facebook登录
- 24. 在没有浏览器的情况下登录到Facebook
- 25. 如何在不登录ios的情况下从facebook页面获取照片
- 26. 如何在没有登录到php帐户的情况下将故事发布到Facebook页面?
- 27. 如何在没有按钮的情况下调用YUI面板/对话框
- 28. 重点哈希没有得到验证登录Facebook的sdk
- 29. 我的页面在没有任何验证的情况下重定向php
- 30. 如何在没有登录的情况下在Android上发布到Facebook Wall?
令牌是否过期? –
是的,它会过期。但是,您可以通过进行API调用来扩展令牌并获得长寿命令牌(最多60天有效期),然后您可以将其保存到数据库中。 –