2015-09-07 63 views
0

我正在写一个偶尔会写入我的Facebook页面作为状态的Azure服务。由于该服务没有UI组件,因此Facebook和Facebook .NET SDK页面上的大多数示例都没有帮助。Facebook .NET SDK - >使用生成的令牌获取和发布

我在Facebook上创建了一个应用程序,然后在Visual Studio中启动了F#REPL。我生成如下令牌:

#r "../packages/Facebook.7.0.6/lib/net45/Facebook.dll" 
#r "../packages/Newtonsoft.Json.7.0.1/lib/net45/Newtonsoft.Json.dll" 

open Facebook 
open Newtonsoft.Json 

type Credentials = {client_id:string; client_secret:string; grant_type:string;scope:string} 
let credentials = {client_id="859968674039398"; 
        client_secret="XXXXXXXXXX"; 
        grant_type="client_credentials"; 
        scope="manage_pages,publish_stream,read_stream,publish_checkins,offline_access"} 

let client = FacebookClient() 
let tokenJson = client.Get("oauth/access_token",credentials) 
type Token = {access_token:string} 
let token = JsonConvert.DeserializeObject<Token>(tokenJson.ToString()) 

令牌按预期返回。然而,当我去使用令牌,我得到错误:

let client' = FacebookClient(token.access_token) 
let me = client'.Get("me") 

回报

的主动访问令牌必须用于查询有关 当前用户的信息。

let pageId = "/me" 
type FacecbookPost = {title:string; message:string} 
let post = {title="Test Title"; message = "Test Message"} 
let postResponse = client'.Post(pageId + "/feed", post) 

回报

用户未授权应用程序来执行此操作

当我阅读文档,他们讨论如何在申请被Facebook批准 - >但在我的使用案例B/C中没有意义,因为没有申请作为d与人类最终用户 - >甚至任何其他用户调用代码一起定义。

当我使用正确的权限在Facebook Graph Api explorer上生成令牌时,我可以使用令牌来生成GETS和POSTS。我应该只生成令牌并将其粘贴在我的.config文件中?令牌持续多久?

在此先感谢

+0

https://developers.facebook.com/docs/facebook-login/access-tokens – CBroe

回答

2

我认为你还没有完全理解Facebook API是如何工作的。

  1. 你总是需要一个应用程序来执行操作(在你的情况下,APP为859968674039398)

  2. 为了发表代表用户,您将需要用户授予权限的应用程序。

  3. 你的应用必须是公开的,如果你需要比基本更多的权限,你需要通过审查过程。

您从图形API资源管理器(这是一个应用程序顺便说一句)获得的访问令牌只为你。

请阅读CBro提供的文档。

我希望它有帮助。

相关问题