我正在使用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页面。
我现在遇到的问题是:
tmp_token
,这是我需要摆脱的问题。oauth.get_app_access_token
到tmp_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相同。当我这样做的时候。
所以,现在我很困惑如何继续。
如何使完全自动化,无需人工干预,以便我: