{
    "componentChunkName": "component---src-components-blog-post-jsx",
    "path": "/blog/programmatically-create-twitter-list/",
    "result": {"data":{"site":{"siteMetadata":{"author":"Monica Powell","siteUrl":"https://www.aboutmonica.com"}},"mdx":{"id":"889e9c35-049a-58c0-9a0c-23ac8ed5684b","timeToRead":3,"body":"var _excluded = [\"components\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"title\": \"How I automatically created a Twitter List of FreeCodeCampers in 5 minutes\",\n  \"date\": \"2018-01-17T17:11:11.376Z\",\n  \"template\": \"post\",\n  \"slug\": \"programmatically-create-twitter-list\",\n  \"category\": [\"tutorial\"],\n  \"tags\": [\"Community\", \"Python\", \"Tutorial\"],\n  \"description\": \"Using Twython Twitter API wrapper to add users to a Twitter List\",\n  \"header\": \"https://cdn-images-1.medium.com/max/2400/1*mUQDjnECZGSncv_imkD3yA.jpeg\",\n  \"redirects\": [\"/blog/2018/01/17/programmatically-create-twitter-list\"]\n};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar TableOfContents = makeShortcode(\"TableOfContents\");\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, _excluded);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(TableOfContents, {\n    headings: props.tableOfContents,\n    mdxType: \"TableOfContents\"\n  }), mdx(\"h2\", {\n    \"id\": \"using-twython-twitter-api-wrapper-to-add-users-to-a-twitter-list\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#using-twython-twitter-api-wrapper-to-add-users-to-a-twitter-list\",\n    \"aria-label\": \"using twython twitter api wrapper to add users to a twitter list permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Using Twython Twitter API wrapper to add users to a Twitter List\"), mdx(\"p\", null, mdx(\"img\", {\n    parentName: \"p\",\n    \"src\": \"https://cdn-images-1.medium.com/max/2400/1*mUQDjnECZGSncv_imkD3yA.jpeg\",\n    \"alt\": null\n  })), mdx(\"p\", null, \"We are going to create a Python script that will automatically search Twitter\\nfor individuals who use the \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"#freeCodeCamp\"), \" hashtag and add them to a Twitter\\nlist of \\\"FreeCodeCampers\\\". \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://help.twitter.com/en/using-twitter/twitter-lists\"\n  }, \"Twitter\\nlists\"), \" are a way to\\ncurate a group of individuals on Twitter and collect all of their tweets in a\\nstream, without having to follow each individual accounts. Twitter lists can\\ncontain up to 5,000 individual Twitter accounts.\"), mdx(\"p\", null, \"We can accomplish this by doing the following:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Installing the necessary Python packages\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Registering an application with Twitter\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Generating and accessing our Twitter credentials\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Making Twitter\\n\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://developer.twitter.com/en/docs/tweets/search/api-reference/get-search-tweets\"\n  }, \"Search\"), \"\\nand\\n\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://developer.twitter.com/en/docs/accounts-and-users/create-manage-lists/api-reference/get-lists-list\"\n  }, \"List\"), \"\\nAPI calls\")), mdx(\"p\", null, \"So lets get started.\"), mdx(\"h3\", {\n    \"id\": \"1-installing-the-necessary-python-packages\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#1-installing-the-necessary-python-packages\",\n    \"aria-label\": \"1 installing the necessary python packages permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"1. Installing the necessary Python packages\"), mdx(\"p\", null, \"Create a file named \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"addToFreeCodeCampList.py\"), \", that will contain our main\\nscript and then import two Python modules into this file:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Import Config:\"), \" In the same directory as our\", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"addToFreeCodeCampList.py\"), \"\\nscript, create a file named \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"config.py\"), \" that stores our confidential Twitter API\\ncredentials. We are going to import our API credentials from that file into our\\n\", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"addToFreeCodeCampList.py\"), \" script by including the line \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"import config\"), \". Twitter\\nrequires a valid API key, API secret, access token and token secret for all API\\nrequests.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Import Twython:\"), \" \", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://github.com/ryanmcgrath/twython\"\n  }, \"Twython\"), \" is a\\nPython wrapper for the Twitter API that makes it easier to programmatically\\naccess and manipulate data from Twitter using Python. We can import Twython with\\nthe following line \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"from twython import Twython, TwythonError\"), \".\")), mdx(\"p\", null, \"Your \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"addToFreeCodeCampList.py\"), \" script should now look like this.\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-python\"\n  }, \"    import config\\n    from twython import Twython, TwythonError\\n\")), mdx(\"h3\", {\n    \"id\": \"2-registering-an-application-with-twitter\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#2-registering-an-application-with-twitter\",\n    \"aria-label\": \"2 registering an application with twitter permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"2. Registering an application with Twitter\"), mdx(\"p\", null, \"We need to authenticate our application in order to access the Twitter API. You\\nneed to have a Twitter account in order to access \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://apps.twitter.com/\"\n  }, \"Twitter's Application\\nManagement site\"), \". The Application Management site is\\nwhere you can view/edit/create API keys, API secrets, access tokens and token\\nsecrets.\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"In order to create these credentials, we need to create a Twitter application.\\nGo to the Application Management site and click on \\\"Create New App\\\". This should\\ndirect you to a page that looks similar to the one below.\")), mdx(\"p\", null, mdx(\"img\", {\n    parentName: \"p\",\n    \"src\": \"https://cdn-images-1.medium.com/max/1600/1*H8TiOR6qnIXo_sNoRb7OGw.png\",\n    \"alt\": null\n  })), mdx(\"ol\", {\n    \"start\": 2\n  }, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Fill out of the required fields and click on \\\"Create your Twitter\\napplication\\\". You will then be redirected to a page with details about your\\napplication.\")), mdx(\"h3\", {\n    \"id\": \"3-generating-and-accessing-our-twitter-credentials\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#3-generating-and-accessing-our-twitter-credentials\",\n    \"aria-label\": \"3 generating and accessing our twitter credentials permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"3. Generating and accessing our Twitter credentials\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Click on the tab that says \\\"Keys and Access Tokens\\\" and copy the \\\"Consumer Key\\n(API Key)\\\" and \\\"Consumer Secret (API Secret)\\\" into the \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"config.py\"), \" file\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Scroll down to the bottom of the page and click on \\\"Create my access token\\\".\\nCopy the generated \\\"Access Token\\\" and \\\"Access Token Secret\\\" into the \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"config.py\"), \"\\nfile.\")), mdx(\"p\", null, \"2) Currently, all of our Twitter credentials live inside our \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"config.py\"), \" file\\nand we've imported \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"config\"), \" into our \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"addToFreeCodeCampList.py\"), \" file. However,\\nwe have not actually passed any information between the files.\"), mdx(\"p\", null, \"Let's change that by creating a Twython object and passing in the necessary API\\nkey, API secrets and API token from our \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"config.py\"), \" file with the following:\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-python\"\n  }, \"    twitter = Twython(config.api_key, config.api_secret, config.access_token, config.token_secret)\\n\")), mdx(\"p\", null, \"The \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"addToFreeCodeCampList.py\"), \" file should now look similar to this:\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-python\"\n  }, \"  import config\\n  from twython import Twython, TwythonError\\n  # create a Twython object by passing the necessary secret passwords\\n  twitter = Twython(config.api_key, config.api_secret, config.access_token, config.token_secret)\\n\")), mdx(\"h3\", {\n    \"id\": \"4-making-twitter-search-and-list-api-calls\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#4-making-twitter-search-and-list-api-calls\",\n    \"aria-label\": \"4 making twitter search and list api calls permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"4. Making Twitter Search and List API calls\"), mdx(\"h4\", {\n    \"id\": \"lets-make-an-api-call-to-search-twitter-and-return-the-100-most-recent-tweets\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#lets-make-an-api-call-to-search-twitter-and-return-the-100-most-recent-tweets\",\n    \"aria-label\": \"lets make an api call to search twitter and return the 100 most recent tweets permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Let's make an API call to search Twitter and return the 100 most recent tweets\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-python\"\n  }, \"        # return tweets containing #FreeCodeCamp\\n        response = twitter.search(q='\\\"#FreeCodeCamp\\\" -filter:retweets', result_type=\\\"recent\\\", count=100)\\n\")), mdx(\"h5\", {\n    \"id\": \"look-at-the-tweets-returned-from-our-search\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h5\",\n    \"href\": \"#look-at-the-tweets-returned-from-our-search\",\n    \"aria-label\": \"look at the tweets returned from our search permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Look at the tweets returned from our search\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-python\"\n  }, \" # for each tweet returned from search of #FreeCodeCamp\\n\\n for tweet in response['statuses']:\\n\\n # print tweet info if needed for debugging\\n\\n print(tweet)\\n print(tweet['user']['screen_name'])\\n\")), mdx(\"p\", null, \"A single tweet returned by this API call looks like this in JSON:\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-javascript\"\n  }, \" {'created_at': 'Sun Dec 24 00:23:05 +0000 2017', 'id': 944725078763298816, 'id_str': '944725078763298816', 'text': 'Why is it so hard to wrap my head around node/express. Diving in just seems so overwhelming. Templates, forms, post\\u2026\\n  'truncated': True, 'entities': {'hashtags': [], 'symbols': [], 'user_mentions': [], 'urls': [{'url': 'https://t.co/ae52rro63i', 'expanded_url': 'https://twitter.com/i/web/status/944725078763298816', 'display_url': 'twitter.com/i/web/status/9\\u2026', 'indices': [117, 140]}]}, 'metadata': {'iso_language_code': 'en', 'result_type': 'recent'}, 'source': '<a href=\\\"http://twitter.com\\\" rel=\\\"nofollow\\\">Twitter Web Client</a>', 'in_reply_to_status_id': None, 'in_reply_to_status_id_str': None, 'in_reply_to_user_id': None, 'in_reply_to_user_id_str': None, 'in_reply_to_screen_name': None, 'user': {'id': 48602981, 'id_str': '48602981', 'name': 'Matt Huberty', 'screen_name': 'MattHuberty', 'location': 'Oxford, MS', 'description': \\\"I'm a science and video game loving eagle scout with a Microbio degree from UF. Nowadays I'm working on growing my tutoring business at Ole Miss. Link below!\\\", 'url': 'https://t.co/dfuqNNoBYZ', 'entities': {'url': {'urls': [{'url': 'https://t.co/dfuqNNoBYZ', 'expanded_url': 'http://www.thetutorcrew.com', 'display_url': 'thetutorcrew.com', 'indices': [0, 23]}]}, 'description': {'urls': []}}, 'protected': False, 'followers_count': 42, 'friends_count': 121, 'listed_count': 4, 'created_at': 'Fri Jun 19 04:00:44 +0000 2009', 'favourites_count': 991, 'utc_offset': -28800, 'time_zone': 'Pacific Time (US & Canada)', 'geo_enabled': False, 'verified': False, 'statuses_count': 199, 'lang': 'en', 'contributors_enabled': False, 'is_translator': False, 'is_translation_enabled': False, 'profile_background_color': 'C0DEED', 'profile_background_image_url': 'http://abs.twimg.com/images/themes/theme1/bg.png', 'profile_background_image_url_https': 'https://abs.twimg.com/images/themes/theme1/bg.png', 'profile_background_tile': False, 'profile_image_url': 'http://pbs.twimg.com/profile_images/777294001598758912/FVOIrnb4_normal.jpg', 'profile_image_url_https': 'https://pbs.twimg.com/profile_images/777294001598758912/FVOIrnb4_normal.jpg', 'profile_banner_url': 'https://pbs.twimg.com/profile_banners/48602981/1431670621', 'profile_link_color': '1DA1F2', 'profile_sidebar_border_color': 'C0DEED', 'profile_sidebar_fill_color': 'DDEEF6', 'profile_text_color': '333333', 'profile_use_background_image': True, 'has_extended_profile': True, 'default_profile': True, 'default_profile_image': False, 'following': False, 'follow_request_sent': False, 'notifications': False, 'translator_type': 'none'}, 'geo': None, 'coordinates': None, 'place': None, 'contributors': None, 'is_quote_status': False, 'retweet_count': 1, 'favorite_count': 0, 'favorited': False, 'retweeted': False, 'lang': 'en'}\\n\")), mdx(\"h4\", {\n    \"id\": \"add-tweet-ers-to-our-twitter-list\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#add-tweet-ers-to-our-twitter-list\",\n    \"aria-label\": \"add tweet ers to our twitter list permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Add Tweet-ers to our Twitter list\"), mdx(\"p\", null, \"In order to add the author of the tweet to our Twitter list we need the username\\nassociated with the tweet \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"tweet['user']['screen_name']\")), mdx(\"p\", null, \"Let's try to add the users from these tweets to our Twitter list\\n\\\"FreeCodeCampers\\\". I created my Twitter list at\\n\", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://twitter.com/indigitalcolor/lists/freecodecampers\"\n  }, \"https://twitter.com/indigitalcolor/lists/freecodecampers\"), \"\\nwhich means for my script the slug is \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"freecodecampers\"), \" and the\\n\", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"owner_screen_name\"), \" is mine, waterproofheart.\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-python\"\n  }, \"for tweet in response['statuses']:\\n\\n# try to add each user who has tweeted the hashtag to the list\\ntry:\\ntwitter.add_list_member(slug='YOUR_LIST_SLUG', owner_screen_name='YOUR_USERNAME', screen_name= tweet['user']['screen_name'])\\n\\n#if for some reason Twython can't add user to the list print exception message\\nexcept TwythonError as e:\\nprint(e)\\n\")), mdx(\"p\", null, \"You can create your own Twitter list by navigating to your Twitter profile,\\nclicking on \\\"Lists\\\" on desktop and clicking on the right hand side to \\\"Create\\nnew list\\\". View the \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://help.twitter.com/en/using-twitter/twitter-lists\"\n  }, \"official Twitter List\\ndocumentation\"), \" for more\\ninformation.\"), mdx(\"p\", null, mdx(\"img\", {\n    parentName: \"p\",\n    \"src\": \"https://cdn-images-1.medium.com/max/1600/1*TPUBuOqUwh_WXUNrUu6MyA.png\",\n    \"alt\": null\n  })), mdx(\"p\", null, \"You can test your script by running \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"python addToFreeCodeCampList.py\"), \" in the\\nterminal.\"), mdx(\"p\", null, \"My final script looks like this:\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-py\"\n  }, \"import config\\n\\nfrom twython import Twython, TwythonError\\n\\n# create a Twython object by passing the necessary secret passwords\\ntwitter = Twython(config.api_key, config.api_secret, config.access_token, config.token_secret)\\n\\n# return tweets containing #FreeCodeCamp\\nresponse = twitter.search(q='\\\"#FreeCodeCamp\\\"  -filter:retweets', result_type=\\\"recent\\\", count=100)\\n\\n\\n# for each tweet returned from search of #FreeCodeCamp\\nfor tweet in response['statuses']:\\n # print each username if needed for debugging\\n # print(tweet['user']['screen_name'])\\n\\n # try to add each user who has tweeted the hashtag to the list\\n try:\\n     twitter.add_list_member(slug='YOUR_LIST_SLUG', owner_screen_name='YOUR_SCREEN_NAME', screen_name= tweet['user']['screen_name'])\\n except TwythonError as e:\\n     print(e)\\n\")), mdx(\"p\", null, \"This script can be set to automatically run locally or remotely via a \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://en.wikipedia.org/wiki/Cron\"\n  }, \"cron\\njob\"), \" which allows tasks to be performed at a\\nset schedule.\"), mdx(\"p\", null, \"Feel free to \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://twitter.com/waterproofheart\"\n  }, \"tweet at me\"), \"\\nif you have any questions, suggestions or want to share how you modified this script!\"));\n}\n;\nMDXContent.isMDXComponent = true;","tableOfContents":{"items":[{"url":"#using-twython-twitter-api-wrapper-to-add-users-to-a-twitter-list","title":"Using Twython Twitter API wrapper to add users to a Twitter List","items":[{"url":"#1-installing-the-necessary-python-packages","title":"1. Installing the necessary Python packages"},{"url":"#2-registering-an-application-with-twitter","title":"2. Registering an application with Twitter"},{"url":"#3-generating-and-accessing-our-twitter-credentials","title":"3. Generating and accessing our Twitter credentials"},{"url":"#4-making-twitter-search-and-list-api-calls","title":"4. Making Twitter Search and List API calls","items":[{"url":"#lets-make-an-api-call-to-search-twitter-and-return-the-100-most-recent-tweets","title":"Let's make an API call to search Twitter and return the 100 most recent tweets","items":[{"url":"#look-at-the-tweets-returned-from-our-search","title":"Look at the tweets returned from our search"}]},{"url":"#add-tweet-ers-to-our-twitter-list","title":"Add Tweet-ers to our Twitter list"}]}]}]},"frontmatter":{"title":"How I automatically created a Twitter List of FreeCodeCampers in 5 minutes","date":"January 17, 2018","description":"Using Twython Twitter API wrapper to add users to a Twitter List","tags":["Community","Python","Tutorial"]}},"allWebMentionEntry":{"edges":[{"node":{"wmTarget":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1254208842386345986/1209736372799647744","wmProperty":"like-of","wmId":787358,"type":"entry","url":"https://twitter.com/waterproofheart/status/1254208842386345986#favorited-by-1209736372799647744","likeOf":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","author":{"url":"https://twitter.com/fitcoderness","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/f6bc0d36d3d3d718cc5d654053c7ab9ed6bf48b1e15e5fcb304afcd8e6d1f40d.jpg","name":"Fit Coders World 🧼 👏 🚰"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1254208842386345986/1151523777047478272","wmProperty":"like-of","wmId":787318,"type":"entry","url":"https://twitter.com/waterproofheart/status/1254208842386345986#favorited-by-1151523777047478272","likeOf":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","author":{"url":"https://twitter.com/xtrixia","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/c753c797cf632d56a4d7a8b843f7f283b172d56b9ba79733011d821995e31525.jpg","name":"pew"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","wmSource":"https://brid-gy.appspot.com/repost/twitter/waterproofheart/1254208842386345986/1254399496840249344","wmProperty":"repost-of","wmId":787319,"type":"entry","url":"https://twitter.com/SawdaSays/status/1254399496840249344","likeOf":null,"author":{"url":"https://twitter.com/SawdaSays","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/9f67bbe4a66f5a6335d2064fd08a396e84f5d5efa66c15e7e8b52d935e2ed9f7.jpg","name":"S."},"published":"April 26, 2020","content":{"text":"If you're curious how I generated a twitter list of #womenofreact2020 participants 🤖 check out:\n- Script on GitHub 👩🏾‍💻: https://t.co/4q"}}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1254208842386345986/864631382466809860","wmProperty":"like-of","wmId":787298,"type":"entry","url":"https://twitter.com/waterproofheart/status/1254208842386345986#favorited-by-864631382466809860","likeOf":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","author":{"url":"https://twitter.com/essentialcode20","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/cd7e68bb93bf16a7d23575d0c84778745e445e4e935f6fc1beb143fa53e6d161.jpg","name":"Marien"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1254208842386345986/15300655","wmProperty":"like-of","wmId":787276,"type":"entry","url":"https://twitter.com/waterproofheart/status/1254208842386345986#favorited-by-15300655","likeOf":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","author":{"url":"https://twitter.com/round","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/3babcda7d1d4b751ab82237f0d62f2c13094e2aaabe4bc8f3416cd80be276631.jpg","name":"Maxim Leyzerovich"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","wmSource":"https://brid-gy.appspot.com/repost/twitter/waterproofheart/1254208842386345986/1254334999190548481","wmProperty":"repost-of","wmId":787277,"type":"entry","url":"https://twitter.com/kmelve/status/1254334999190548481","likeOf":null,"author":{"url":"https://twitter.com/kmelve","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/a92840da457eec63c06b2ec55994e21fb5f97e38f0d1eb4c3e1f6bb4214d7c34.jpg","name":"knut 🏠 working from cyberspace"},"published":"April 26, 2020","content":{"text":"If you're curious how I generated a twitter list of #womenofreact2020 participants 🤖 check out:\n- Script on GitHub 👩🏾‍💻: https://t.co/4q"}}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1254208842386345986/798123","wmProperty":"like-of","wmId":787266,"type":"entry","url":"https://twitter.com/waterproofheart/status/1254208842386345986#favorited-by-798123","likeOf":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","author":{"url":"https://twitter.com/kmelve","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/a92840da457eec63c06b2ec55994e21fb5f97e38f0d1eb4c3e1f6bb4214d7c34.jpg","name":"knut 🏠 working from cyberspace"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1254208842386345986/70345946","wmProperty":"like-of","wmId":787253,"type":"entry","url":"https://twitter.com/waterproofheart/status/1254208842386345986#favorited-by-70345946","likeOf":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","author":{"url":"https://twitter.com/dan_abramov","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/e86fc2bd18d4f88b7a48c5c11f2e9a83f46cc58f6cd8544a891d01cc41f0489b.jpg","name":"Dan Abramov"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1254208842386345986/77569492","wmProperty":"like-of","wmId":787252,"type":"entry","url":"https://twitter.com/waterproofheart/status/1254208842386345986#favorited-by-77569492","likeOf":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","author":{"url":"https://twitter.com/sophia_wyl","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/bd5274e29914762857f8ca34f33b912d5fd623542d1b07e14bca8c1ce04c449d.jpg","name":"Sophia Li"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1254208842386345986/963229406385684480","wmProperty":"like-of","wmId":787250,"type":"entry","url":"https://twitter.com/waterproofheart/status/1254208842386345986#favorited-by-963229406385684480","likeOf":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","author":{"url":"https://twitter.com/byAaronC","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/0967743371727790e97e5975ae0b1ec7235e801e35442abf31cddd99526d26bd.jpg","name":"Aaron"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1254208842386345986/1567529924","wmProperty":"like-of","wmId":787251,"type":"entry","url":"https://twitter.com/waterproofheart/status/1254208842386345986#favorited-by-1567529924","likeOf":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","author":{"url":"https://twitter.com/jsjoeio","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/819966659d27915d4561fe97cb7b96d0b1f9e0f33dfaf56e4c537d03c7c30ac6.jpg","name":"Joe Previte 🦀"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1254208842386345986/1618457924","wmProperty":"like-of","wmId":787248,"type":"entry","url":"https://twitter.com/waterproofheart/status/1254208842386345986#favorited-by-1618457924","likeOf":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","author":{"url":"https://twitter.com/joemart06","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/f3f883550288ac099d721cf7d26a848e1793dfc9ed2a29345397994bc937e41a.jpg","name":"Joe Martire"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1254208842386345986/978697480517931008","wmProperty":"like-of","wmId":787249,"type":"entry","url":"https://twitter.com/waterproofheart/status/1254208842386345986#favorited-by-978697480517931008","likeOf":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","author":{"url":"https://twitter.com/real_anon_","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/9534532c3a5aee0b259c4db6f894657a5b7a255f1d7e97df0c78919402dc7e35.jpg","name":"Sara De La Cruz"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1254208842386345986/16348472","wmProperty":"like-of","wmId":787242,"type":"entry","url":"https://twitter.com/waterproofheart/status/1254208842386345986#favorited-by-16348472","likeOf":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","author":{"url":"https://twitter.com/jimcalliu","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/44edb337fd06d52d5aee2b66cb4b526ac256f99c56068cf7cb24d8f0f619678e.jpg","name":"𝓙𝓲𝓶 😷 Stay at home 😷 𝓛𝓲𝓾"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1254208842386345986/195256627","wmProperty":"like-of","wmId":787241,"type":"entry","url":"https://twitter.com/waterproofheart/status/1254208842386345986#favorited-by-195256627","likeOf":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","author":{"url":"https://twitter.com/DavesIsHereMan","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/b4fa4a5e5a4287c3c6996896114839830320376bf4fa1267f9d1e9666b3f1534.jpg","name":"Dave E"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1254208842386345986/18922464","wmProperty":"like-of","wmId":787239,"type":"entry","url":"https://twitter.com/waterproofheart/status/1254208842386345986#favorited-by-18922464","likeOf":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","author":{"url":"https://twitter.com/angieg0nzalez","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/22dd924faf37e83f1d2c1a4cd907e3485f158ddfb11ee40496f3c2ed2a17af3a.jpg","name":"Angie Gonzalez"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1254208842386345986/4104819082","wmProperty":"like-of","wmId":787240,"type":"entry","url":"https://twitter.com/waterproofheart/status/1254208842386345986#favorited-by-4104819082","likeOf":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","author":{"url":"https://twitter.com/melindamgolden","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/f900f6b091c5048024b2d48f7e5385f9c65450ffd9001f510e9b62b6decbb4e5.jpg","name":"Melinda Golden"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","wmSource":"https://brid-gy.appspot.com/comment/twitter/waterproofheart/1254208842386345986/1254215293850677248","wmProperty":"in-reply-to","wmId":787238,"type":"entry","url":"https://twitter.com/angieg0nzalez/status/1254215293850677248","likeOf":null,"author":{"url":"https://twitter.com/angieg0nzalez","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/22dd924faf37e83f1d2c1a4cd907e3485f158ddfb11ee40496f3c2ed2a17af3a.jpg","name":"Angie Gonzalez"},"published":"April 26, 2020","content":{"text":"This is awesome 👏🏼 👏🏼"}}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1254208842386345986/43855146","wmProperty":"like-of","wmId":787237,"type":"entry","url":"https://twitter.com/waterproofheart/status/1254208842386345986#favorited-by-43855146","likeOf":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","author":{"url":"https://twitter.com/floriidaaa","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/ce0e67ab50a358eff0886517c5bc821db46d056b1f28ca969caab036a9d886fb.jpg","name":"Florida Elago"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","wmSource":"https://brid-gy.appspot.com/repost/twitter/waterproofheart/1254208842386345986/1254211225459625984","wmProperty":"repost-of","wmId":787235,"type":"entry","url":"https://twitter.com/floraworley/status/1254211225459625984","likeOf":null,"author":{"url":"https://twitter.com/floraworley","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/d4fc2d6a0868e7809a5f059a2c40e3fdc9fe960b763dd700143d3bc1407da9f0.jpg","name":"florapdx @ #WomenOfReact2020"},"published":"April 26, 2020","content":{"text":"If you're curious how I generated a twitter list of #womenofreact2020 participants 🤖 check out:\n- Script on GitHub 👩🏾‍💻: https://t.co/4q"}}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1254208842386345986/1131369638066085889","wmProperty":"like-of","wmId":787234,"type":"entry","url":"https://twitter.com/waterproofheart/status/1254208842386345986#favorited-by-1131369638066085889","likeOf":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","author":{"url":"https://twitter.com/annieezheng","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/843565f54c0831250db69aec6e86584be943a5f1af85bb80d4927c200682966c.jpg","name":"anniezheng"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1254208842386345986/305854397","wmProperty":"like-of","wmId":787233,"type":"entry","url":"https://twitter.com/waterproofheart/status/1254208842386345986#favorited-by-305854397","likeOf":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","author":{"url":"https://twitter.com/floraworley","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/d4fc2d6a0868e7809a5f059a2c40e3fdc9fe960b763dd700143d3bc1407da9f0.jpg","name":"florapdx @ #WomenOfReact2020"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1254208842386345986/244965762","wmProperty":"like-of","wmId":787232,"type":"entry","url":"https://twitter.com/waterproofheart/status/1254208842386345986#favorited-by-244965762","likeOf":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","author":{"url":"https://twitter.com/rickhanlonii","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/63170aa206058a48d938d478d61a04e7d7429b81905709688811de48adcd0120.jpg","name":"Ricky @ WomenOfReact"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1254208842386345986/25918855","wmProperty":"like-of","wmId":787227,"type":"entry","url":"https://twitter.com/waterproofheart/status/1254208842386345986#favorited-by-25918855","likeOf":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","author":{"url":"https://twitter.com/meowwwls","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/fee93e84964c3d9c4e53cb15317efcb6303a9b0b60f0772526ee8885c8ae0cd1.png","name":"Melissa Em"},"published":null,"content":null}},{"node":{"wmTarget":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","wmSource":"https://brid-gy.appspot.com/like/twitter/waterproofheart/1254208842386345986/7457112","wmProperty":"like-of","wmId":787228,"type":"entry","url":"https://twitter.com/waterproofheart/status/1254208842386345986#favorited-by-7457112","likeOf":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","author":{"url":"https://twitter.com/askModulei","type":"card","photo":"https://webmention.io/avatar/pbs.twimg.com/194cd5e42b3e5e8917e1ce219da91e3843fb7ced29796c8eab44c055fce3410a.jpg","name":"⚡️ leila ⚡️"},"published":null,"content":null}}]}},"pageContext":{"permalink":"https://www.aboutmonica.com/blog/programmatically-create-twitter-list/","slug":"/blog/programmatically-create-twitter-list/","prev":{"id":"70a9d4e9-0061-5034-aeb8-5e9e17f9c62d","frontmatter":{"title":"4 Meetups That Helped Me Grow as A Woman of Color in Tech","category":["resources"],"date":"2018-07-26T17:11:11.376Z","slug":"4-meetups-that-helped-me-grow","tags":["Community","Reflection"],"redirects":["/blog/2018/07/26/4-meetups-that-helped-me-grow"]},"fields":{"slug":"/blog/4-meetups-that-helped-me-grow/"}},"next":{"id":"3c5a32b5-043c-54b9-8416-2c1cb0851dea","frontmatter":{"title":"Conquering the Command Line","category":["tutorial"],"date":"2017-12-05T17:11:11.376Z","slug":"conquering-the-command-line","tags":["Terminal","Unix","Tutorial"],"redirects":["/blog/2017/12/05/conquering-the-command-line"]},"fields":{"slug":"/blog/conquering-the-command-line/"}}}},
    "staticQueryHashes": ["1977783444","764694655"]}