使用Ruby客户端在Firebase动态链接CreateManagedShortLinkRequest上获取服务器错误

时间:2019-06-26 08:12:04

标签: firebase google-api firebase-dynamic-links google-api-ruby-client

我正在尝试使用Ruby SDK创建动态链接。我相信我没事,但是我得到

  

Google :: Apis :: ServerError:服务器错误

创建网址时

您能帮我弄清楚我的缺失/做错什么吗,还是这是Google的问题?

假设我已经生成了请求适当范围的Oauth凭据,我正在做

request = ::Google::Apis::FirebasedynamiclinksV1::CreateManagedShortLinkRequest.new(
  dynamic_link_info: ::Google::Apis::FirebasedynamiclinksV1::DynamicLinkInfo.new(
    domain_uri_prefix: Rails.application.secrets.firebase_dynamic_link_prefix,
    link: campaign.linkedin_url,
  ),
  suffix: ::Google::Apis::FirebasedynamiclinksV1::Suffix.new(
    option: 'SHORT',
  ),
  # name: "Linkedin acquisition URL of #{camp.utm_campaign_name} for #{camp.contractor.name} <#{camp.contractor.email}>",
  name: "Test of generation",
)
# => <Google::Apis::FirebasedynamiclinksV1::CreateManagedShortLinkRequest:0x000021618baa88 
#   @dynamic_link_info=#<Google::Apis::FirebasedynamiclinksV1::DynamicLinkInfo:0x000021618bad80 
#     @domain_uri_prefix="https://example.page.link", 
#     @link="https://www.example.com/?invitation_code=example&signup=example&utm_campaign=example&utm_medium=example&utm_source=example">, 
#   @name="Test of generation", 
#   @suffix=#<Google::Apis::FirebasedynamiclinksV1::Suffix:0x000021618babf0 
#     @option="SHORT">
# >
link_service.create_managed_short_link(request)

def link_service
  @link_service ||= begin
    svc = ::Google::Apis::FirebasedynamiclinksV1::FirebaseDynamicLinksService.new
    svc.authorization = oauth_service.credentials
    svc
  end
end

我知道OAuth范围似乎可以像以前一样正常工作

  

Google :: Apis :: ClientError:禁止:请求的身份验证范围不足。

但是我在增加OAuth范围以覆盖firebase之后对其进行了修复。另外,我的要求似乎是正确的,因为当我尝试省略其中一个参数(例如name)时,我遇到了类似的验证错误

  

Google :: Apis :: ClientError:badRequest:创建的托管动态链接必须具有名称

我唯一的提示是create_managed_short_link实际上需要更多参数。在上面给出的示例中,我还用example替换了我们的真实Firebase前缀,但是我拥有自己正在使用的真实Firebase前缀,并且直接从Firebase前端控制台生成链接实际上有效。

我已将我的google sdk更新为最新版本 -google-api-client-0.30.3

1 个答案:

答案 0 :(得分:0)

不幸的是,当前不支持通过REST API生成托管的短链接。

here如在动态链接团队中工作的某人所述。

目前我们只能使用CreateShortDynamicLinkRequest,但是此终结点不允许指定custom_suffix(即https://example.com/my-custom-suffix