Skip to content

Commit f641ca4

Browse files
author
Lewis Youl
committed
feat: open a twitter intent with newly posted image
1 parent 17d42af commit f641ca4

File tree

4 files changed

+17
-12
lines changed

4 files changed

+17
-12
lines changed

app/controllers/tweets_controller.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
class TweetsController < ApplicationController
22
def create
3-
twitter_client.tweet_media(params[:data].path)
3+
tweet = twitter_client.tweet_media(params[:data].path)
4+
5+
render json: { media_url: tweet.media.first.display_url }
46
end
57

68
private

app/javascript/controllers/picture_controller.js

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,16 +31,17 @@ export default class extends Controller {
3131
}
3232

3333
tweetImage(blob) {
34-
let fd = new FormData();
35-
fd.append('fname', 'tweet.png');
36-
fd.append('data', blob);
34+
let formData = new FormData();
35+
formData.append('fname', 'tweet.png');
36+
formData.append('data', blob);
3737

3838
const headers = { 'Content-Type': `multipart/form-data` }
3939

40-
axios.post(`/tweets`, fd, { headers })
40+
axios.post(`/tweets`, formData, { headers })
4141
.then(res => {
42-
console.log('tweeted!')
43-
// create the twet intent with the created media url in it
42+
const imageUrl = res.data.media_url
43+
44+
window.open(`https://twitter.com/intent/tweet?text=${imageUrl}`)
4445
})
4546
.catch(console.error)
4647
}

app/services/clients/twitter.rb

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,12 @@ def tweet_media(filepath)
1515

1616
def client
1717
@client ||= ::Twitter::REST::Client.new do |config|
18-
config.consumer_key = "0bEb97Ev9jfb0SdZAc3bnvuzq"
19-
config.consumer_secret = "x5cpKgPzcdhXXHPKDKOuo5JAIOhMDr3Y22SZiYwHrHvV9dUzuW"
20-
config.access_token = "1354061940260294656-OA3CosQ2hUd90llhxLubtdNASYfgaW"
21-
config.access_token_secret = "k8MZ8tCtvIJQs56FNjRzkbDHzY7BIkoOh5IVqAK4fnt4A"
18+
credentials = Rails.application.credentials.dig(Rails.env.to_sym, :twitter)
19+
20+
config.consumer_key = credentials.dig(:consumer_key)
21+
config.consumer_secret = credentials.dig(:consumer_secret)
22+
config.access_token = credentials.dig(:access_token)
23+
config.access_token_secret = credentials.dig(:access_token_secret)
2224
end
2325
end
2426

config/credentials.yml.enc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
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--SQlmMB4mlE5VAxE8--23oA+lRB2IH6j3EJspWWFQ==
1+
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--iCG0FG7BXaZ0NliJ--pf5KKSpHgYa6nMoFgQ44nw==

0 commit comments

Comments
 (0)