如何使用F#
问题描述:
我看Facebook SDK,第一次,我想用F#来实现它获得了Facebook访问令牌。我试图根据我的应用程序的appId,appSecret和clientToken获取访问令牌。我正在查看*上找到的C#示例here。如何使用F#
如何翻译此C#代码?
var fb = new FacebookClient();
dynamic result = fb.Get("oauth/access_token", new {
client_id = "app_id",
client_secret = "app_secret",
grant_type = "client_credentials"
});
fb.AccessToken = result.access_token;
F#不允许动态输入,我不知道如何实现它。
在此先感谢。
答
可以使用ImpromptuInterface.FSharp NuGet包通过?
运营商能够动态查找。这将使你写result?access_token
使用匿名类型实际上是比较难翻译,因为F#不具备的。该解决方案取决于他们是如何使用的,虽然我不知道Facebook的SDK如何消耗这些价值观,我会认为它的工作方式的ASP.NET Web API,它使用匿名类型为相同替代字典。
在这种情况下,你需要先创建一个记录与相应的属性:
type Credentials = {
client_id : string
client_secret : string
grant_type : string
}
这应该使您能够创建该类型的新值:
{
client_id = "app_id"
client_secret = "app_secret"
grant_type = "client_credentials"
}
值得提到C#'dynamic'在IL中不存在,并且被编译为'object'。因此,在F#,你将有一个价值'obj',然后使用'?'运营商实现从'ImpromptuInterface.FSharp'挑选的部分。 –