tinder_auth_fetcher 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
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