如何使用 meteor 将 twitter 和 instagram @(用户名)显示为个人资料名称?

How to display twitter and instagram @ (usernames) as a profile name with meteor?

我正在尝试创建一个变量以从 2 个不同的值中进行选择,如果一个为空,则 select 另一个。

author: '@'+ user.services.instagram.username.toUpperCase() || user.services.twitter.screenName.toUpperCase()

当我尝试在 Twitter 帐户上发表评论时,这会导致错误。

TypeError: Cannot read property 'instagram' of undefined

这里是抢码

comment = _.extend(commentAttributes, {
  userId: user._id,
  // author: '@'+user.services.instagram.username.toUpperCase(),
  author: '@'+ user.services.instagram.username.toUpperCase() || user.services.twitter.screenName.toUpperCase(),
  submitted: formatDate(new Date())
});
  1. 您的错误消息只是说您的 user.services 变量是 undefined
  2. '@' + null 给出 '@null',所以它总是真实的。

我找到了解决方案。我试图使用 'same' 变量拉取 instagram 和 twitter 的 @ 句柄,因此我可以将其用作个人资料名称。问题是 Instagram 使用 services.instagram.username 而 Twitter 使用 services.twitter.screenName

我可以修复这个编辑流星包的问题,​​但这不是一个完整的解决方案,而是我为 'Account.onCreateUser' based on this.

设定了一个条件

所以我刚刚做了 profile.name 保存用户 @ 而不是名称。

        if (service == 'instagram') {
            if (!user.profile)
                user.profile = {};
            if (!user.profile.name)
                user.profile.name = user.services[service].username;
        }

        if (service == 'twitter') {
          if (!user.profile)
                user.profile = {};
          if (!user.profile.name)
                user.profile.name = user.services[service].screenName;
        }