rails-pinterest 0.2.3 → 0.2.5
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 +4 -4
- data/CHANGELOG.md +18 -1
- data/Gemfile.lock +1 -1
- data/README.md +4 -1
- data/lib/pinterest/client.rb +4 -0
- data/lib/pinterest/pins.rb +6 -2
- data/lib/pinterest/user_account.rb +144 -0
- data/lib/pinterest/version.rb +1 -1
- data/lib/pinterest.rb +1 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c2511d23d52e43b2316914cd9ae42d5420a9677471f417c3d725c36c58abaabe
|
4
|
+
data.tar.gz: 17ca93046f01b103c386a01fcf3048da5736f14168cb6f9e27ddb4a3f554d5e9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dd55a3c51bb89ea98999bc7b9c11c79aeb2fc5ba03f9fbc0fe69dcc4b0fd2156725a57261fea987450329e7242c4841c820c300a290f04f3db11ca9104fc4a9a
|
7
|
+
data.tar.gz: 2cff0ae0bfe401e66c8445f8aef9222576c69d6227f05b2e229e9c043df2129b36bb1e71f43545e8b2f6ac4874135b2d0f73b4c89d22e92a9557a4de92b4c1e1
|
data/CHANGELOG.md
CHANGED
@@ -44,4 +44,21 @@
|
|
44
44
|
- Fix param requirement for Media#register_media_upload
|
45
45
|
|
46
46
|
## [0.2.3] - 2024-03-11
|
47
|
-
- Revert V.0.2.3
|
47
|
+
- Revert V.0.2.3
|
48
|
+
|
49
|
+
## [0.2.4] - 2024-04-09
|
50
|
+
- Add User Account to API
|
51
|
+
|
52
|
+
## [0.2.5] - 2024-05-10
|
53
|
+
- Add the beta endpoint https://developer.pinterest.com/docs/api/v5/#operation/multi_pins/analytics (it doesn't really work right now)
|
54
|
+
- Example usage:
|
55
|
+
```ruby
|
56
|
+
client = Pinterest::Client.new(access_token: "some-access-token")
|
57
|
+
params = {
|
58
|
+
pin_ids: ["920634348815764178","920634348815790715","920634348815829069","920634348815865049","920634348815897303","920634348815911959","920634348815943797","920634348816238458","920634348816183143","920634348816403644","920634348816488886","920634348816699966"],
|
59
|
+
start_date: "2024-03-01",
|
60
|
+
end_date: "2024-05-10",
|
61
|
+
metric_types: ["IMPRESSION", "OUTBOUND_CLICK", "PIN_CLICK", "SAVE", "SAVE_RATE", "VIDEO_MRC_VIEW", "VIDEO_10S_VIEW", "QUARTILE_95_PERCENT_VIEW", "VIDEO_V50_WATCH_TIME", "VIDEO_START", "VIDEO_AVG_WATCH_TIME", "TOTAL_COMMENTS", "TOTAL_REACTIONS"]
|
62
|
+
}
|
63
|
+
response = client.pins.get_multiple_pin_analytics(ids: params[:pin_ids], start_date: params[:start_date], end_date: params[:end_date], metric_types: params[:metric_types], parameters: {})
|
64
|
+
```
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -260,4 +260,7 @@ The gem is available as open source under the terms of the [MIT License](https:/
|
|
260
260
|
Everyone interacting in the Ruby Pinterest project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/royalgiant/rails-pinterest/blob/main/CODE_OF_CONDUCT.md).
|
261
261
|
|
262
262
|
## Influences
|
263
|
-
Project heavily influenced by [https://github.com/alexrudall/ruby-openai](https://github.com/alexrudall/ruby-openai). Great project, go give them a star!
|
263
|
+
Project heavily influenced by [https://github.com/alexrudall/ruby-openai](https://github.com/alexrudall/ruby-openai). Great project, go give them a star!
|
264
|
+
|
265
|
+
## Where Is Rails-Pinterest Used?
|
266
|
+
Currently used by [Imagifyr](https://imagifyr.com) to allow creators to schedule their content. SEO Optimized with AI.
|
data/lib/pinterest/client.rb
CHANGED
data/lib/pinterest/pins.rb
CHANGED
@@ -24,8 +24,12 @@ module Pinterest
|
|
24
24
|
@client.patch(path: "/pins/#{id}", parameters: parameters)
|
25
25
|
end
|
26
26
|
|
27
|
-
def get_pin_analytics(id:, parameters: {})
|
28
|
-
@client.get(path: "/pins/#{id}/analytics", parameters: parameters)
|
27
|
+
def get_pin_analytics(id:, start_date:, end_date:, metric_types:, parameters: {})
|
28
|
+
@client.get(path: "/pins/#{id}/analytics?start_date=#{start_date}&end_date=#{end_date}&metric_types=#{metric_types}", parameters: parameters)
|
29
|
+
end
|
30
|
+
|
31
|
+
def get_multiple_pin_analytics(ids:, start_date:, end_date:, metric_types:, parameters: {})
|
32
|
+
@client.get(path: "/pins/analytics?pin_ids=#{ids}&start_date=#{start_date}&end_date=#{end_date}&metric_types=#{metric_types}", parameters: parameters)
|
29
33
|
end
|
30
34
|
|
31
35
|
def save_pin(id: , parameters: {})
|
@@ -0,0 +1,144 @@
|
|
1
|
+
module Pinterest
|
2
|
+
class UserAccount
|
3
|
+
def initialize(client: nil)
|
4
|
+
@client = client
|
5
|
+
end
|
6
|
+
|
7
|
+
def get_user_account(parameters: {})
|
8
|
+
@client.get(path: "/user_account", parameters: parameters)
|
9
|
+
end
|
10
|
+
|
11
|
+
def get_user_account_analytics(start_date:, end_date:, parameters: {})
|
12
|
+
query_string = "/user_account/analytics?start_date=#{start_date}&end_date=#{end_date}"
|
13
|
+
if parameters[:from_claimed_content] && !parameters[:from_claimed_content].empty?
|
14
|
+
query_string += "&from_claimed_content=#{parameters[:from_claimed_content]}"
|
15
|
+
end
|
16
|
+
if parameters[:pin_format] && !parameters[:pin_format].empty?
|
17
|
+
query_string += "&pin_format=#{parameters[:pin_format]}"
|
18
|
+
end
|
19
|
+
if parameters[:app_types] && !parameters[:app_types].empty?
|
20
|
+
query_string += "&app_types=#{parameters[:app_types]}"
|
21
|
+
end
|
22
|
+
if parameters[:content_type] && !parameters[:content_type].empty?
|
23
|
+
query_string += "&content_type=#{parameters[:content_type]}"
|
24
|
+
end
|
25
|
+
if parameters[:source] && !parameters[:source].empty?
|
26
|
+
query_string += "&source=#{parameters[:source]}"
|
27
|
+
end
|
28
|
+
if parameters[:metric_types] && !parameters[:metric_types].empty?
|
29
|
+
query_string += "&metric_types=#{parameters[:metric_types]}"
|
30
|
+
end
|
31
|
+
if parameters[:split_field] && !parameters[:split_field].empty?
|
32
|
+
query_string += "&split_field=#{parameters[:split_field]}"
|
33
|
+
end
|
34
|
+
if parameters[:ad_account_id] && !parameters[:ad_account_id].empty?
|
35
|
+
query_string += "&ad_account_id=#{parameters[:ad_account_id]}"
|
36
|
+
end
|
37
|
+
@client.get(path: query_string, parameters: parameters)
|
38
|
+
end
|
39
|
+
|
40
|
+
def get_user_account_top_pins_analytics(start_date:, end_date:, sort_by:, parameters: {})
|
41
|
+
query_string = "/user_account/analytics?start_date=#{start_date}&end_date=#{end_date}&sort_by=#{sort_by}"
|
42
|
+
if parameters[:from_claimed_content] && !parameters[:from_claimed_content].empty?
|
43
|
+
query_string += "&from_claimed_content=#{parameters[:from_claimed_content]}"
|
44
|
+
end
|
45
|
+
if parameters[:pin_format] && !parameters[:pin_format].empty?
|
46
|
+
query_string += "&pin_format=#{parameters[:pin_format]}"
|
47
|
+
end
|
48
|
+
if parameters[:app_types] && !parameters[:app_types].empty?
|
49
|
+
query_string += "&app_types=#{parameters[:app_types]}"
|
50
|
+
end
|
51
|
+
if parameters[:content_type] && !parameters[:content_type].empty?
|
52
|
+
query_string += "&content_type=#{parameters[:content_type]}"
|
53
|
+
end
|
54
|
+
if parameters[:source] && !parameters[:source].empty?
|
55
|
+
query_string += "&source=#{parameters[:source]}"
|
56
|
+
end
|
57
|
+
if parameters[:metric_types] && !parameters[:metric_types].empty?
|
58
|
+
query_string += "&metric_types=#{parameters[:metric_types]}"
|
59
|
+
end
|
60
|
+
if parameters[:num_of_pins] && !parameters[:num_of_pins].empty?
|
61
|
+
query_string += "&num_of_pins=#{parameters[:num_of_pins]}"
|
62
|
+
end
|
63
|
+
if parameters[:created_in_last_n_days] && !parameters[:created_in_last_n_days].empty?
|
64
|
+
query_string += "&created_in_last_n_days=#{parameters[:created_in_last_n_days]}"
|
65
|
+
end
|
66
|
+
if parameters[:ad_account_id] && !parameters[:ad_account_id].empty?
|
67
|
+
query_string += "&ad_account_id=#{parameters[:ad_account_id]}"
|
68
|
+
end
|
69
|
+
@client.get(path: query_string, parameters: parameters)
|
70
|
+
end
|
71
|
+
|
72
|
+
def get_user_account_top_video_pins_analytics(start_date:, end_date:, sort_by:, parameters: {})
|
73
|
+
query_string = "/user_account/analytics?start_date=#{start_date}&end_date=#{end_date}&sort_by=#{sort_by}"
|
74
|
+
if parameters[:from_claimed_content] && !parameters[:from_claimed_content].empty?
|
75
|
+
query_string += "&from_claimed_content=#{parameters[:from_claimed_content]}"
|
76
|
+
end
|
77
|
+
if parameters[:pin_format] && !parameters[:pin_format].empty?
|
78
|
+
query_string += "&pin_format=#{parameters[:pin_format]}"
|
79
|
+
end
|
80
|
+
if parameters[:app_types] && !parameters[:app_types].empty?
|
81
|
+
query_string += "&app_types=#{parameters[:app_types]}"
|
82
|
+
end
|
83
|
+
if parameters[:content_type] && !parameters[:content_type].empty?
|
84
|
+
query_string += "&content_type=#{parameters[:content_type]}"
|
85
|
+
end
|
86
|
+
if parameters[:source] && !parameters[:source].empty?
|
87
|
+
query_string += "&source=#{parameters[:source]}"
|
88
|
+
end
|
89
|
+
if parameters[:metric_types] && !parameters[:metric_types].empty?
|
90
|
+
query_string += "&metric_types=#{parameters[:metric_types]}"
|
91
|
+
end
|
92
|
+
if parameters[:num_of_pins] && !parameters[:num_of_pins].empty?
|
93
|
+
query_string += "&num_of_pins=#{parameters[:num_of_pins]}"
|
94
|
+
end
|
95
|
+
if parameters[:created_in_last_n_days] && !parameters[:created_in_last_n_days].empty?
|
96
|
+
query_string += "&created_in_last_n_days=#{parameters[:created_in_last_n_days]}"
|
97
|
+
end
|
98
|
+
if parameters[:ad_account_id] && !parameters[:ad_account_id].empty?
|
99
|
+
query_string += "&ad_account_id=#{parameters[:ad_account_id]}"
|
100
|
+
end
|
101
|
+
@client.get(path: query_string, parameters: parameters)
|
102
|
+
end
|
103
|
+
|
104
|
+
def list_linked_businesses(parameters: {})
|
105
|
+
@client.get(path: "/user_account/businesses", parameters: parameters)
|
106
|
+
end
|
107
|
+
|
108
|
+
def list_followers(parameters: {})
|
109
|
+
@client.get(path: "/user_account/followers", parameters: parameters)
|
110
|
+
end
|
111
|
+
|
112
|
+
def list_following(parameters: {})
|
113
|
+
@client.get(path: "/user_account/following", parameters: parameters)
|
114
|
+
end
|
115
|
+
|
116
|
+
def list_following_boards(parameters: {})
|
117
|
+
@client.get(path: "/user_account/following/boards", parameters: parameters)
|
118
|
+
end
|
119
|
+
|
120
|
+
def follow_user(username:, parameters: {})
|
121
|
+
@client.json_post(path: "/user_account/following/#{username}", parameters: parameters)
|
122
|
+
end
|
123
|
+
|
124
|
+
def verify_website(parameters: {})
|
125
|
+
@client.json_post(path: "/user_account/websites", parameters: parameters)
|
126
|
+
end
|
127
|
+
|
128
|
+
def get_user_websites(parameters: {})
|
129
|
+
@client.get(path: "/user_account/websites", parameters: parameters)
|
130
|
+
end
|
131
|
+
|
132
|
+
def unverify_website(website:)
|
133
|
+
@client.delete(path: "/user_account/websites?website=#{website}")
|
134
|
+
end
|
135
|
+
|
136
|
+
def get_user_verification_code_for_website_claiming(parameters: {})
|
137
|
+
@client.get(path: "/user_account/websites/verification", parameters: parameters)
|
138
|
+
end
|
139
|
+
|
140
|
+
def list_following_interests(username:, parameters: {})
|
141
|
+
@client.get(path: "/users/#{username}/interests/follow", parameters: parameters)
|
142
|
+
end
|
143
|
+
end
|
144
|
+
end
|
data/lib/pinterest/version.rb
CHANGED
data/lib/pinterest.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails-pinterest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Donald Lee
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-05-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -65,6 +65,7 @@ files:
|
|
65
65
|
- lib/pinterest/oauth.rb
|
66
66
|
- lib/pinterest/pins.rb
|
67
67
|
- lib/pinterest/terms.rb
|
68
|
+
- lib/pinterest/user_account.rb
|
68
69
|
- lib/pinterest/version.rb
|
69
70
|
- lib/ruby/pinterest.rb
|
70
71
|
- rails-pinterest.gemspec
|