使用Koala在Facebook页面上发布自动续订身份验证码

时间:2016-11-12 10:47:59

标签: ruby-on-rails facebook facebook-graph-api oauth

我正在使用Rails 4并使用Koala在三个不同的Facebook-PAGES上发布工作系统。唯一的问题是我将Koala API auth代码硬编码到初始化器中,我需要每60天(有时更早)更新它们。我已经阅读并重新阅读了每个SO问题和文档,但没有明白。

我没有任何用户通过Facebook或类似的东西登录网站。这些都是作为一个耙子处理,在我的Facebook页面上发布我的博客文章的摘录。

我有以下信息(所有代币,ID'等等):

- My application ID: my_app_id #=> 12343423423749274734
- My application secret: my_app_secret #=> fc2323cdf2ce2312cdc121efed212
- Page id for first Facebook Page (of three): fb_page1_id #=> 343395105021155

有了这个,我可以创建一个Koala-Oauth连接:

oauth = Koala::Facebook::OAuth.new(my_app_id, my_app_secret, "http://www.mywebsite.com")

我可以通过它获得app_access_token:

oauth.get_app_access_token #=> 1231231726347364273|VhfeSDf43JdsdfJsERFE
然而,这对我来说是个死路一条。我不能用它来做任何事情。

如果我转到https://developers.facebook.com/tools/explorer,我可以为我的应用程序获取一个如下所示的访问令牌:

tmp_token = "EAADaSDASDAMZBoBEBADBDuAqvgUYJPe7sJ5qmgoF3N1awXR4VTET3FYzXFZAPz0jLAoo8d4aaASd9BBZAp9aWbHB2xEvjFbo5At8ekuwyhFDCKbP0m4OYWmbM9GjSfq2KibjASDASDGAAHZCLIVmjWf2JQwj0N0VWBytI2eiswZDZD"

我可以创建其余的:

base_connection = Koala::Facebook::API.new(tmp_token)
page_1_token = base_connection.get_page_access_token(fb_page1_id)
page_1_api = Koala::Facebook::API.new(page_1_token)
page_1_api.put_connections("me", "feed", message: "Test")

...成功发布"测试"到我的Facebook页面。

我现在遇到的问题是:

  • 我需要每30-60天手动更新初始化程序中的tmp_token,这是我需要摆脱的问题。
  • 我不明白如何从oauth.get_app_access_tokentmp_token。基本上,我无法在我的rake-function中自动创建tmp_token

我意识到这可能与使用:

有关
oauth.url_for_oauth_code

code变量作为GET获取,然后使用

oauth.get_access_token(code)

这是正确的(只有?)方式吗?

我尝试了我的地址字段中的代码并将其输入到我的控制台中的oauth.get_access_token(code)但是出现了错误:"验证验证码时出错。请确保您的redirect_uri与您在OAuth对话框请求[HTTP 400]"中使用的redirect_uri相同。当我这样做的时候。

所以,现在我很困惑如何继续。

如何使完全自动化,无需人工干预,以便我:

  • 经常自动更新我的tmp_token,所以我最终没有过期的令牌?
  • 或者,在我的rake-function中创建一个tmp_token?

0 个答案:

没有答案