【问题标题】:JavaScript - Trigger Twitter intent "follow" callback only if user actually followsJavaScript - 仅当用户实际关注时触发 Twitter 意图“关注”回调
【发布时间】:2020-04-05 09:08:20
【问题描述】:

我正在开发的产品: Requestly - Chrome 和 Firefox 扩展设置重定向、修改标头、切换主机、插入用户脚本 (https://www.requestly.in/)

我正在尝试做的事情:如果用户完成了几个步骤,请求提供 30 天免费访问 GOLD 计划。其中一个步骤是在 Twitter 上关注我们。我想验证用户是否真的在 Twitter 上关注了我们。

 //After loading widgets.js    
    function followIntent (intentEvent) { 
        console.log("User Followed")
    };    
    twttr.ready(function (twttr) {
      twttr.events.bind('follow', followIntent);
    });

问题:一旦用户点击关注按钮,“followIntent”功能就会被触发。我希望只有在用户成功关注我们之后才调用它。我怎样才能做到这一点?

【问题讨论】:

  • Bind是应用函数绑定是吗??语法是 fn.bind(null, 'follow', callback)。这里 null 是上下文。

标签: javascript twitter twitter-oauth


【解决方案1】:

假设您遇到follow 事件发生在用户单击“关注”按钮和实际“关注”发生之间的问题。您可以随时通过GET followers/ids 调用 Twitter API 来验证它。虽然看起来有点没必要……

function followIntent (intentEvent) { 
  if (!intentEvent) return;
  followerVerification(intentEvent.data.user_id);
};

async function followerVerification (userID) {
  // make your API request here
  var userList = await twitterAPIRequest();
  if (userList.includes(userID)){
    console.log("User Followed")
  } else {
    console.log("User Not Followed")
  }
}

function twitterAPIRequest() {
  var settings = {
    "async": true,
    "url": "https://api.twitter.com/1.1/followers/ids.json?screen_name=twitterdev",
    "method": "GET",
    "headers": {
      // Your app autherization stuff
    }
  }

  $.ajax(settings).done(function (response) {
    return response.ids;
  });
}

twttr.ready(function (twttr) {
  twttr.events.bind('follow', followIntent);
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-20
    • 2018-07-20
    • 2018-04-30
    相关资源
    最近更新 更多