tinder_auth_fetcher 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 7686ce138a2fd4c970b73cd2b717c9adc9a9dff0
4
- data.tar.gz: 31474a3043d8dfdc9a3eb0032b93fc8c60a7c1d9
2
+ SHA256:
3
+ metadata.gz: 438b3eba202a9e4942452615b8e5070ae80dddaf2c94d7458bd130394289d9ef
4
+ data.tar.gz: b7a77feaa592c4d1201924a23d995c382a40b0892c7dfa357d5f47b4e04d3f13
5
5
  SHA512:
6
- metadata.gz: 545e33c64197cde00fd9ee36c1183b5ff9c55b351f04719362ae67bdd0d574258ca000a6226b54c68c073b3973adf820d5b2f11c241fa1a8d2e096bb327f042c
7
- data.tar.gz: e71a425f79dc15f88e092eef9a753e53f05c86dd10ed4b8f873f563d0256df94649653963e9d9690cafbad780aa517cdd2356722038b8230a1c0e88cfb1aa843
6
+ metadata.gz: 0df3d47f000bf489a7125e42abc7ccbc55ac4f4f164767a7d3c8fc290fe7bcc589f31936a2c7cddd7dae5fe09d2a6896b866d7b010be9c356c04d9b12e884f0a
7
+ data.tar.gz: 4d20c8447bd0fe5ffa022ee998e3dc00a5695853999e80c174e44d25b9a6f1de96ad0c2b4958804620f3507fbbd6d0d28dedc93716b43f0727c769145205e0c8
data/.gitignore CHANGED
@@ -1,13 +1,6 @@
1
1
  /.bundle/
2
- /.yardoc
3
2
  /Gemfile.lock
4
- /_yardoc/
5
- /coverage/
6
- /doc/
7
3
  /pkg/
8
- /spec/reports/
9
- /tmp/
10
4
  /.idea/
11
-
12
- # rspec failure tracking
5
+ /vendor
13
6
  .rspec_status
@@ -0,0 +1 @@
1
+ 2.6.3
data/Gemfile CHANGED
@@ -1,4 +1,3 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- # Specify your gem's dependencies in tinder_auth_fetcher.gemspec
4
3
  gemspec
data/README.md CHANGED
@@ -5,10 +5,7 @@ TinderAuthFetcher is inspired by [@andrewpeterprifer](https://github.com/andrewp
5
5
  Thank you Andrew! :smile:
6
6
 
7
7
  ## Description
8
- The TinderAuthFetcher library is used for fetching Facebook auth token to use Tinder API. TinderAuthFetcher automatically crawls Facebook and retrieves the token which is necessary to send a request to Tinder API. More information about Tinder API is [here](https://gist.github.com/rtt/10403467).
9
-
10
- ## Dependencies
11
- - [Mechanize](https://github.com/sparklemotion/mechanize)
8
+ TinderAuthFetcher is used for fetching Facebook auth token to use Tinder API. TinderAuthFetcher automatically crawls Facebook and retrieves the token which is necessary to send a request to Tinder API. More information about Tinder API is [here](https://gist.github.com/rtt/10403467).
12
9
 
13
10
  ## Installation
14
11
 
@@ -39,9 +36,7 @@ Now all you need to do is just call #TinderAuthFetcher.fetch_token with target f
39
36
 
40
37
  ```ruby
41
38
  token = TinderAuthFetcher.fetch_token(facebook_email, facebook_password)
42
- ```
43
-
44
- **Notice**: TinderAuthFetcher raises `TinderAuthFetcher::FacebookAuthenticationError` with the message "Facebook Authentication failed. Check if you passed correct email and password" if it failed to log in, so you might want to deal with it.
39
+ ```
45
40
 
46
41
  ## Test
47
42
  I wrote only two test cases, one that asserts it raises `TinderAuthFetcher::FacebookAuthenticationError` when it fails to fetch the token and the one which asserts it fetches the token correctly.
@@ -1,50 +1,24 @@
1
- require 'tinder_auth_fetcher/version'
2
- require 'mechanize'
3
-
4
1
  module TinderAuthFetcher
5
- USER_AGENT = 'Mozilla/5.0 (Linux; U; en-gb; KFTHWI Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.16 Safari/535.19'
6
- URI = 'https://www.facebook.com/v2.6/dialog/oauth?redirect_uri=fb464891386855067%3A%2F%2Fauthorize%2F&display=touch&state=%7B%22challenge%22%3A%22IUUkEUqIGud332lfu%252BMJhxL4Wlc%253D%22%2C%220_auth_logger_id%22%3A%2230F06532-A1B9-4B10-BB28-B29956C71AB1%22%2C%22com.facebook.sdk_client_state%22%3Atrue%2C%223_method%22%3A%22sfvc_auth%22%7D&scope=user_birthday%2Cuser_photos%2Cuser_education_history%2Cemail%2Cuser_relationship_details%2Cuser_friends%2Cuser_work_history%2Cuser_likes&response_type=token%2Csigned_request&default_audience=friends&return_scopes=true&auth_type=rerequest&client_id=464891386855067&ret=login&sdk=ios&logger_id=30F06532-A1B9-4B10-BB28-B29956C71AB1&ext=1470840777&hash=AeZqkIcf-NEW6vBd'
2
+ require 'selenium-webdriver'
3
+ require 'webdrivers'
7
4
 
8
- class FacebookAuthenticationError < StandardError; end
5
+ URI = 'https://www.facebook.com/v2.6/dialog/oauth?redirect_uri=fb464891386855067%3A%2F%2Fauthorize%2F&scope=user_birthday%2Cuser_photos%2Cuser_education_history%2Cemail%2Cuser_relationship_details%2Cuser_friends%2Cuser_work_history%2Cuser_likes&response_type=token%2Csigned_request&client_id=464891386855067&ret=login&fallback_redirect_uri=221e1158-f2e9-1452-1a05-8983f99f7d6e&ext=1556057433&hash=Aea6jWwMP_tDMQ9y'
9
6
 
10
7
  def self.fetch_token(email, password)
11
- # Login to the page
12
- logged_in = login(email, password)
13
-
14
- # Click OK
15
- confirmed = confirm(logged_in)
8
+ options = Selenium::WebDriver::Chrome::Options.new(
9
+ prefs: { 'profile.default_content_setting_values.notifications': 2 }
10
+ )
16
11
 
17
- # Retrieve token
18
- confirmed.content.match(/access_token=(\w+)&expires_in=/)[1]
19
- end
20
-
21
- def self.prepare_agent
22
- agent = Mechanize.new
23
- agent.user_agent = USER_AGENT
24
- agent
25
- end
12
+ driver = Selenium::WebDriver.for :chrome, options: options
26
13
 
27
- def self.login(email, password)
28
- agent = prepare_agent
29
- page = agent.get(URI)
14
+ driver.navigate.to URI
30
15
 
31
- f = page.forms[0]
32
- f.field_with(name: 'email').value = email
33
- f.field_with(name: 'pass').value = password
16
+ driver.find_element(:id, 'email').send_keys(email)
17
+ driver.find_element(:id, 'pass').send_keys(password)
18
+ driver.find_element(:id, 'loginbutton').click
34
19
 
35
- res = agent.submit f
20
+ driver.find_element(:name, '__CONFIRM__').click
36
21
 
37
- if res.uri.path.start_with? '/login'
38
- raise TinderAuthFetcher::FacebookAuthenticationError, 'Facebook Authentication failed. Check if you passed correct email and password'
39
- end
40
-
41
- res
42
- end
43
-
44
- def self.confirm(logged_in)
45
- confirm = logged_in.forms[0]
46
- confirm.click_button(confirm.button_with(name: '__CONFIRM__'))
22
+ driver.page_source.match(/access_token=(\w+)&data_access_expiration_time=/)[1]
47
23
  end
48
-
49
- private_class_method :prepare_agent, :login, :confirm
50
24
  end
@@ -1,27 +1,29 @@
1
1
  # coding: utf-8
2
2
  lib = File.expand_path('../lib', __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'tinder_auth_fetcher/version'
5
4
 
6
5
  Gem::Specification.new do |spec|
7
- spec.name = "tinder_auth_fetcher"
8
- spec.version = TinderAuthFetcher::VERSION
9
- spec.authors = ["Shuhei Kitagawa"]
10
- spec.email = ["shuhei.kitagawa@gmail.com"]
6
+ spec.name = 'tinder_auth_fetcher'
7
+ spec.version = '0.1.1'
8
+ spec.authors = ['Shuhei Kitagawa']
9
+ spec.email = ['shuhei.kitagawa@gmail.com']
11
10
 
12
11
  spec.summary = %q{TinderAuthFetcher enables you to retrieve a Facebook authentication token, which is necessary to use Tinder API}
13
- spec.homepage = "https://github.com/shuheiktgw/tinder_auth_fetcher"
14
- spec.license = "MIT"
12
+ spec.homepage = 'https://github.com/shuheiktgw/tinder_auth_fetcher'
13
+ spec.license = 'MIT'
15
14
 
16
15
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
17
16
  f.match(%r{^(test|spec|features)/})
18
17
  end
19
- spec.bindir = "exe"
18
+ spec.bindir = 'exe'
20
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
- spec.require_paths = ["lib"]
20
+ spec.require_paths = ['lib']
22
21
 
23
- spec.add_dependency "mechanize", "~> 2.0"
24
- spec.add_development_dependency "bundler", "~> 1.14"
25
- spec.add_development_dependency "rake", "~> 10.0"
26
- spec.add_development_dependency "rspec", "~> 3.0"
22
+ spec.add_dependency "selenium-webdriver", "~> 3.142"
23
+ spec.add_dependency "webdrivers", "~> 3.8"
24
+ spec.add_development_dependency "bundler", "~> 2.0"
25
+ spec.add_development_dependency "rake", "~> 12.0"
26
+ spec.add_development_dependency "rspec", "~> 3.8"
27
+ spec.add_development_dependency "pry"
28
+ spec.add_development_dependency "pry-byebug"
27
29
  end
metadata CHANGED
@@ -1,71 +1,113 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tinder_auth_fetcher
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shuhei Kitagawa
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-06-11 00:00:00.000000000 Z
11
+ date: 2019-07-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: mechanize
14
+ name: selenium-webdriver
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '2.0'
19
+ version: '3.142'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '2.0'
26
+ version: '3.142'
27
+ - !ruby/object:Gem::Dependency
28
+ name: webdrivers
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '3.8'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '3.8'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: bundler
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
45
  - - "~>"
32
46
  - !ruby/object:Gem::Version
33
- version: '1.14'
47
+ version: '2.0'
34
48
  type: :development
35
49
  prerelease: false
36
50
  version_requirements: !ruby/object:Gem::Requirement
37
51
  requirements:
38
52
  - - "~>"
39
53
  - !ruby/object:Gem::Version
40
- version: '1.14'
54
+ version: '2.0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: rake
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
59
  - - "~>"
46
60
  - !ruby/object:Gem::Version
47
- version: '10.0'
61
+ version: '12.0'
48
62
  type: :development
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
66
  - - "~>"
53
67
  - !ruby/object:Gem::Version
54
- version: '10.0'
68
+ version: '12.0'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: rspec
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
73
  - - "~>"
60
74
  - !ruby/object:Gem::Version
61
- version: '3.0'
75
+ version: '3.8'
62
76
  type: :development
63
77
  prerelease: false
64
78
  version_requirements: !ruby/object:Gem::Requirement
65
79
  requirements:
66
80
  - - "~>"
67
81
  - !ruby/object:Gem::Version
68
- version: '3.0'
82
+ version: '3.8'
83
+ - !ruby/object:Gem::Dependency
84
+ name: pry
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: pry-byebug
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
69
111
  description:
70
112
  email:
71
113
  - shuhei.kitagawa@gmail.com
@@ -75,6 +117,7 @@ extra_rdoc_files: []
75
117
  files:
76
118
  - ".gitignore"
77
119
  - ".rspec"
120
+ - ".ruby-version"
78
121
  - ".travis.yml"
79
122
  - CODE_OF_CONDUCT.md
80
123
  - Gemfile
@@ -84,7 +127,6 @@ files:
84
127
  - bin/console
85
128
  - bin/setup
86
129
  - lib/tinder_auth_fetcher.rb
87
- - lib/tinder_auth_fetcher/version.rb
88
130
  - tinder_auth_fetcher.gemspec
89
131
  homepage: https://github.com/shuheiktgw/tinder_auth_fetcher
90
132
  licenses:
@@ -105,8 +147,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
105
147
  - !ruby/object:Gem::Version
106
148
  version: '0'
107
149
  requirements: []
108
- rubyforge_project:
109
- rubygems_version: 2.6.8
150
+ rubygems_version: 3.0.3
110
151
  signing_key:
111
152
  specification_version: 4
112
153
  summary: TinderAuthFetcher enables you to retrieve a Facebook authentication token,
@@ -1,3 +0,0 @@
1
- module TinderAuthFetcher
2
- VERSION = "0.1.0"
3
- end