我有一个 NaiveDateTimes 列表,我想获得最新的。对 DateTimes / NaiveDateTimes 列表进行排序的最简单方法是什么?
我知道使用 Elixir 的标准排序规则是不安全的,因为它在结构上比较术语而不是查看日期的含义:
# UNSAFE / returns entries in incorrect order:
[~N[2020-02-29 10:00:01], ~N[2020-03-11 10:20:00], ~N[2020-03-15 10:00:00]] |> Enum.sort
# => [~N[2020-03-11 10:20:00], ~N[2020-03-15 10:00:00], ~N[2020-02-29 10:00:01]]
Run Code Online (Sandbox Code Playgroud) 我正在开发一个使用Facebook Graph API实现FB身份验证集成的应用程序.作为其中一部分,我们从Facebook获取用户的电子邮件,first_name和last_name,以便我们可以将电子邮件地址与我们数据库中的现有用户匹配,或者创建一个失败的新用户.
在Graph版本2.3中,我们可以使用以下请求轻松获取此信息,您可以在Graph API Explorer中测试运行,假设我们提供了具有权限的访问令牌,user_about_me并且email:
Request: https://graph.facebook.com/v2.4/10154900171335022
Response:
{
"id": "123456",
"email": "buckeroo.banzai@gmail.com",
"first_name": "Buckeroo",
"gender": "male",
"last_name": "Banzai",
"link": "https://www.facebook.com/app_scoped_user_id/123456/",
"locale": "en_US",
"name": "Buckeroo Banzai",
"timezone": -4,
"updated_time": "2015-06-06T07:21:23+0000",
"verified": true
}
Run Code Online (Sandbox Code Playgroud)
但是当我切换到API v2.4并尝试相同的请求时,即使我启用了所有权限,我也会得到以下无用的响应:
{
"name": "Topher Hunt",
"id": "10154900171335022"
}
Run Code Online (Sandbox Code Playgroud)
这与FB的API文档不匹配,这表明完整数据(包括电子邮件)仍应按照v2.3中的原样返回.
使用FB Graph v2.4时,有没有人成功找到获取用户电子邮件地址的方法?任何解决方法?也许我应该推迟升级?
提前致谢!
我有这样的地图:
%{
"US" => "United States",
"CA" => "Canada",
"NL" => "The Netherlands"
}
Run Code Online (Sandbox Code Playgroud)
我想用值交换键,得到这样的映射:
%{
"United States" => "US",
"Canada" => "CA",
"The Netherlands" => "NL"
}
Run Code Online (Sandbox Code Playgroud)
像这样“反转”或“反转”地图的最佳方法是什么?我在任何地方都没有看到专用的功能。
我的 Phoenix 应用程序需要与第 3 方 API 集成,该 API 通过Server-Sent Events以流格式发送数据。我是第一次了解SSE;SSE 流看起来很像 Websocket,只不过它们是单向的并且更简单。
我看到很多关于如何从 Elixir 应用程序作为服务器发送SSE数据的建议(例如 1、2、3),但我没有看到关于 Elixir 应用程序如何作为客户端使用SSE 数据流的建议。我看到的文章似乎假设客户端是浏览器中的 JS,但我知道 Ruby SSE 客户端存在(1 , 2),所以我认为没有强有力的技术原因说明 Elixir 应用程序无法充当上交所客户端。
在 Elixir 应用程序中使用 SSE 数据的最简单方法是什么?我将不胜感激任何指示和资源。
我的Elixir/Phoenix应用程序需要能够录制HTML5视频,允许用户查看他们录制的视频,然后通过AJAX将录制内容直接上传到S3进行存储,并向Elixir服务器发送POST以存储新上传的对象.在Rails世界中,有关于如何实现这一目标的各种宝石和冗长的教程; 在Elixir/Phoenix进行直接到S3文件上传的简单方法是什么?
我熟悉浏览器通知 API,但似乎无法requireInteraction在 Chrome 中使用该设置(我使用的是 Mac OSX,Chrome v89.0.4389.114。)我需要帮助确认这是否是已知的 Chrome 错误,或者也许我只是做错了什么。
授予通知权限后,从控制台运行以下命令会按预期显示瞬态通知,该通知会在大约 5 秒后消失:
new Notification("Test", {body: "Foo", requireInteraction: false})
Run Code Online (Sandbox Code Playgroud)
...而以下命令不会显示任何通知,即使是暂时的(尽管控制台显示返回的通知对象,该对象似乎设置了正确的值):
new Notification("Test", {body: "Foo", requireInteraction: true})
Run Code Online (Sandbox Code Playgroud)
换句话说,在我迄今为止的所有测试中,requireInteraction=true即使通知正确显示,也会导致通知根本不显示requireInteraction=false。
据我所知,Chrome 因在没有警告的情况下多次破坏标准 JS API 而闻名,但令我惊讶的是,我找不到任何当前文档来确认这是一个已知问题。(相对地,requireInteraction似乎对 Firefox v86.0.1 也没有任何影响。但我会单独解决这个问题。)我想我预计通知 API 现在会比这更稳定。
任何有帮助的人都可以确认该requireInteraction设置是否适合您在最新的 Chrome 上(最好在 OSX 上,以尽量减少任何可能的平台差异)?这是浏览器错误吗?也许是 OSX 的限制?我使用的设置错误吗?或者这是一个已知问题,应该反映在 MDN 的浏览器兼容性表中?提前致谢!
当用户的浏览器积累了太多 cookie 时,我的 Phoenix 应用程序开始对某些页面请求给出 431 错误响应。(我们的网站是一个非常大的域的子域,许多 cookie 是在顶级域上全局设置的。)如何配置我的应用程序以允许更长的标头以避免此错误?