chuckha / marriage

Project Cupid (NYC Marriage license) appointment finder
30 stars 11 forks source link

More detailed instruction for using cloud formation template #3

Open MineSafety opened 4 years ago

MineSafety commented 4 years ago

Thanks for the new enhancements/changes, but am not sure whether using the new .yaml file replaces all previous AWS Lambda steps or is simply a supplement to it. Because when I follow the new instructions as is, I keep getting '403 Access Denied" errors for AWSLambda.

CleanShot 2020-07-26 at 08 17 24

From what I've read, I think it has something to do with setting an IAM role on the Configure stack options page, but I'm not too familiar with using AWS so anything additional direction that can be provided in the setup instructions would be much appreciated.

CleanShot 2020-07-26 at 08 19 12

JanLauGe commented 4 years ago

I ran into the same issue as you, turned out I had specified my S3 bucket incorrectly. Make sure to

  1. copy the deployment.zip file to your own s3 bucket
  2. specify the name of the bucket in the relevant field (just bucket name, no s3:// needed)
  3. specify the "key" of the deploy file (path of the file in the bucket, without bucket name, e.g. myfiles/deployment.zip)
MineSafety commented 4 years ago

Thanks. Just so I'm clear, you're referring to this area of AWS? CleanShot 2020-07-26 at 17 41 30@2x

JanLauGe commented 4 years ago

Correct

On Sun, Jul 26, 2020, 17:42 Mine Safety notifications@github.com wrote:

Thanks. Just so I'm clear, you're referring to this area of AWS? [image: CleanShot 2020-07-26 at 17 41 30@2x] https://user-images.githubusercontent.com/47421280/88490132-556cdb80-cf67-11ea-9526-1ab49045adc3.png

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/chuckha/marriage/issues/3#issuecomment-664044234, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADSM2WD4FRZPTGN7MQWQYBDR5SPNTANCNFSM4PH6SZ4A .

chuckha commented 4 years ago

Got it resolved @MineSafety?

JanLauGe commented 4 years ago

It worked fine for me. Just got booked, thank you for your help @chuckha 😄 🤵 👰

iriswu2020 commented 4 years ago

Hello @chuckha , first of all, thank you so much for sharing your code so couples like my finance and I could get an appointment slot without stressing out ourselves. I'm a complete stranger to Github or coding, so I followed your instructions from README step by step and managed to reach to the end and get a result. However, I experienced the exact same issue as @MineSafety did.

Screen Shot 2020-08-03 at 7 21 34 PM

I didn't change any default fields in parameters when creating a stack, but before creating a stack, I compressed the 6 files downloaded from you and renamed it deployment.zip, and also created a new folder under Downloads in my Mac and then renamed it to cupidsarrow, and drag "deployment.zip" into it. I saw the reply from @JanLauGe but I'm not quite sure what he means. Could you tell me what exactly need to be fixed? Thank you very much.

chuckha commented 4 years ago

Ah. It’s a bit tough if you’re unfamiliar with coding. 

I’ll take a look tomorrow and see if the permissions are still public and update this issue. Thanks for reporting! Mine Safety notifications@github.com wrote: “Hello @chuckha , first of all, thank you so much for sharing your code so couples like my finance and I could get an appointment slot without stressing out ourselves. I'm a complete stranger to Github or coding, so I followed your instructions from README step by step and managed to reach to the end and get a result. However, I experienced the exact same issue as @MineSafety did.  ”

[Screen Shot 2020-08-03 at 7 21 34 PM] “ I didn't change any default fields in parameters when creating a stack, but before creating a stack, I compressed the 6 files downloaded from you and renamed it deployment.zip, and also created a new folder under Downloads in my Mac and then renamed it to cupidsarrow, and drag "deployment.zip" into it.  I saw the reply from @JanLauGe but I'm not quite sure what he means. Could you tell me what exactly need to be fixed? Thank you very much. — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.”

iriswu2020 commented 4 years ago

@chuckha Thanks a lot.

gilruben commented 4 years ago

Hey @chuckha. I set everything up, but haven't received any slack messages yet. I left the frequency parameter as the default (1 hour). Am I suppose to receive a slack message every hour telling me whether an appointment is available or not? Or is it that it checks every hour and only slacks me when there is an available appointment?

chuckha commented 4 years ago

you should see a message every hour. Maybe there's something in the cloudwatch logs? Alternatively you can send it a test event from the lambda dashboard page and see if it shows you an error. Mine Safety notifications@github.com wrote: “Hey, I set everything up, but haven't received any slack messages yet. I left the frequency parameter as the default (1 hour). Am I suppose to receive a slack message every hour telling me whether an appointment is available or not? Or is it that it checks every hour and only slacks me when there is an available appointment?”

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

gilruben commented 4 years ago

you should see a message every hour. Maybe there's something in the cloudwatch logs? Alternatively you can send it a test event from the lambda dashboard page and see if it shows you an error. Mine Safety notifications@github.com wrote: “Hey, I set everything up, but haven't received any slack messages yet. I left the frequency parameter as the default (1 hour). Am I suppose to receive a slack message every hour telling me whether an appointment is available or not? Or is it that it checks every hour and only slacks me when there is an available appointment?” — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

I checked the cloud watch logs and everything looks good. There are no errors and I can see that the data is being retrieved from calendly. It looks like I entered the whole channel url for the SlackChannelID parameter, instead of just the channel id. I'm waiting for the next slack message. I'll update you regardless of whether I get the message or not. Thanks for your help with this and for creating this app. I really appreciate it. 👏

chuckha commented 4 years ago

nice, let me know how it goes! Mine Safety notifications@github.com wrote: ““you should see a message every hour. Maybe there's something in the cloudwatch logs? Alternatively you can send it a test event from the lambda dashboard page and see if it shows you an error. Mine Safety notifications@github.com wrote: “Hey, I set everything up, but haven't received any slack messages yet. I left the frequency parameter as the default (1 hour). Am I suppose to receive a slack message every hour telling me whether an appointment is available or not? Or is it that it checks every hour and only slacks me when there is an available appointment?” — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.”

I checked the cloud watch logs and everything looks good. There are no errors and I can see that the data is being retrieved from calendly. I looks like I entered the whole channel url for the SlackChannelID parameter, instead of just the channel id. I'm waiting to for the next slack message. I'll update you regardless of whether I get the message or not. Thanks for your help with this and for creating this app. I really appreciate it. 👏”

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

gilruben commented 4 years ago

@chuckha it's working now. Thanks!

ghost commented 4 years ago

Hi @chuckha , can you let us know how to get past the error that @MineSafety had? Thank you!

chuckha commented 4 years ago

updated the permissions. give it a try again and let me know how it goes! Mine Safety notifications@github.com wrote: “Hi @chuckha , can you let us know how to get past the error that @MineSafety had? Thank you!”

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

ghost commented 4 years ago

@chuckha , all set now. thank you!!

chuckha commented 4 years ago

fantastic! Mine Safety notifications@github.com wrote: “@chuckha , all set now. thank you!!”

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

iriswu2020 commented 4 years ago

Thank you~~ @chuckha @MineSafety I tried again and it's working (Create_Complete). The error is gone and now I'm waiting for my first message in slack.

iriswu2020 commented 4 years ago

Wonderful news!! Multiple slots just opened up on 4 dates: 8/25~8/28. I just made an appointment. So excited.

chuckha commented 4 years ago

:D congratulations! Mine Safety notifications@github.com wrote: “Wonderful news!! Multiple slots just opened up on 4 dates: 8/25~8/28. I just made an appointment. So excited.”

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

leonidblk commented 4 years ago

Hi @chuckha, I think that this is a really great idea, thanks for building this out, it can help a lot of people! I'm trying to get this set up for my cousin and her friends but ran into some issues. In the Amazon stack events, I get UPDATE_COMPLETE, UPDATE_IN_PROGRESS and UPDATE_COMPLETE_CLEANUP_IN_PROGRESS, no errors. But I'm not seeing anything in the Output. Also nothing in Slack.

1) Do I use OAuth Access Token or Bot User OAuth Access Token as the parameter? 2) My Slack Bot has a grey circle instead of green circle (active). Is that an issue? 3) I'm pretty sure I followed all the steps but is there anything I could have missed and is there any info that I can provide to help troubleshoot?

Thank you! And I apologize for the so many questions haha.

nkiraz commented 4 years ago

Hello, thanks for the code. I can't make it work... I tried both Channel ID, with C and without C. For the Oath token, I built an app and gave admin settings and took the access token. Something else I should be doing? :(

Screen Shot 2020-08-11 at 3 52 35 PM Screen Shot 2020-08-11 at 3 53 13 PM
chuckha commented 4 years ago

Ah! You need to be in the us-east-1 region

Sorry for not including that! Mine Safety notifications@github.com wrote: “Hello, thanks for the code.  I can't make it work...  I tried both Channel ID, with C and without C.  For the Oath token, I built an app and gave admin settings and took the access token. Something else I should be doing? :(”

[Screen Shot 2020-08-11 at 3 52 35 PM] “”

[Screen Shot 2020-08-11 at 3 53 13 PM] “ — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.”

nkiraz commented 4 years ago

Ah, thank you! I was thinking about where are the first slacks I created... So I have these, same thing, not getting any updates.. I wonder if I am adding the wrong channel ID or Oath token... Any feedback would be highly appreciated..

Screen Shot 2020-08-11 at 7 15 38 PM
chuckha commented 4 years ago

Hard to debug without more information. Are there any messages in the logs? Mine Safety notifications@github.com wrote: “Ah, thank you! I was thinking about where are the first slacks I created...  So I have these, same thing, not getting any updates.. I wonder if I am adding the wrong channel ID or Oath token...  Any feedback would be highly appreciated..”

[Screen Shot 2020-08-11 at 7 15 38 PM] “ — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.”

nkiraz commented 4 years ago

I sent you a screen recording.. to your email :) I hope you can check it out...

nkiraz commented 4 years ago

Can someone help me? I can send all my passwords... or can you forward your slack notifications to my slack account? I keep checking but no luck and I need to figure this out... 😩

JFajobi commented 4 years ago

@nkiraz I have one suggestion if you have not tried it. On the slack side of things, did you invite the bot that you created into the slack channel where you want to receive the messages?? eg typing @yourBotName within the channel. Once invited if you are not getting any errors I think it will just work.

nkiraz commented 4 years ago

@nkiraz I have one suggestion if you have not tried it. On the slack side of things, did you invite the bot that you created into the slack channel where you want to receive the messages?? eg typing @yourBotName within the channel. Once invited if you are not getting any errors I think it will just work.

Thank you! 😭 I didn't do that before, now done that... Question about token, which one should I be using 1-2-3 or 4? Also Channel ID should I add it with C or without C?

Screen Shot 2020-08-18 at 5 32 22 PM Screen Shot 2020-08-18 at 5 32 39 PM

Thanks!!! 🙏

JFajobi commented 4 years ago

@nkiraz The OAuth token should be the one starting with xoxb-11*** in your top image. Channel ID should be the whole ID, so in this case yes include the C.

thericelover commented 4 years ago

Hi @chuckha , thanks so much for writing this. Sorry to bother you on this

I went through the steps starting at the beginning of the README and read the comments up above, but it seems that I'm stuck quite a bit earlier than everyone else was. I can't get past Step 3, uploading cloudformation.yaml

image

I signed up for AWS, went to https://console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks?filteringText=&filteringStatus=active&viewNested=true&hideStacks=false, and then selected Create Stack >> With Existing Resources.

I'd appreciate if anyone who's gone through the process could help!

ikoyfman commented 4 years ago

Is the automated checking suppose to be giving messages in slack, even if it finds no results?

I checked cloudwatch logs and I see it getting responses, but it is not posting anything in slack image

mocha-maker commented 4 years ago

Hi All,

I just wanted to make a contribution now that I was able to get an appointment that isn't weeks away using this solution. My background is in business/accounting but believe myself fairly computer savvy and love to tinker. So this is for people who are "trusting" but may need more detailed instructions. (Apologies in advance if I use the wrong terminology for certain things. Please correct me.)

OVERVIEW

1) Set Up Slack. 2) Set Up AWS/S3/LAMBDA. 3) Wait. 4) Get appointment. 5) Get married! <3

SLACK SET-UP

1) Create/Choose a Slack Workspace. https://slack.com/ 2) Create the bot by going to https://api.slack.com/apps > Create New App. Name it and link it to your Slack Workspace. 3) Under Features > OAuth & Permissions. Scroll down to Scopes > Add an OAuth Scope for “chat:write” 4) Save the “Bot User OAuth Access Token” in a notepad or something (you can highlight or just click Copy, you will use this later under SlackOauthToken) Looks like: xoxb-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 5) Go back to the Slack Workspace. Select the channel you want to receive messages and notifications in and copy the SlackChannelID from the URL/address bar. Looks like: https://app.slack.com/client/<workspace_id>/<channel_id> 6) Add your bot to the channel by either a) typing in the chat box “@[Insert your bot name]” and send which will prompt you to invite the bot to the channel, or b) click the bot’s profile from under Apps > More […] > Add this app to a channel… > Select channel to add them to.

Note: You can also simply choose to keep both the API and Slack channel tabs open while you go to the next AWS setup so you can copy as you go.

Optional: Set default notifications to only notify you when there is an available appointment. 1) Go to Preferences 2) Set to “Direct messages, mentions & keywords” and enter “map” as one of your keywords.

AWS/S3/LAMBDA SET-UP

1) Download the code as a zip file. 2) Extract cloudformation.yaml 3) Create/Log-in to https://aws.amazon.com/ 4) Go to Service > CloudFormation 5) Create Stack > With new resources 6) Click Next > Upload a template file > Choose the cloudformation.yaml file you extracted earlier 7) Click Next > Name the Stack > Go down the form and enter the SlackChannelID and SlackOauthToken from SLACK SET-UP steps 6 and 5 respectively. 8) Click “Next” through the rest of the pages until you see the “Create stack” button at the bottom. Check the acknowledgement box and click the button. 9) Wait until the 4 resources have been created.

Optional: Change the update frequency. I chose to change the frequency from inside the Rule which you can get to by going to CloudFormation > Stacks > [Your Stack] > Resources > CupidsArrowRule > Edit

From that page you can set it to check the calendar more or less frequently. I also tried to change to a cron expression to only have it run during the day (I can’t sign up for an appointment when I’m asleep afterall, but it didn’t seem to work very well with 15 minute intervals.. ) 

FAQ: Do I need to pay to use AWS?

The Free Tier is more than enough to watch the appointment calendar for a few days you won’t be billed apart from this weird $1 billing registration fee? It’s worth it IMO.

When should I be getting messages?

If you kept it as the default, it will be every hour from creation/update time. So if you created it on the hour, it would every hour on the hour. If there are available appointments, the message will look something like: "map[start_time:2020-09-22T14:00:00-04:00 status:available]"

Is the automated checking suppose to be giving messages in slack, even if it finds no results?

Yes. It should say "Nothing available".

Additional Advice: • Download mobile app for notifications anywhere you happen to be. • Usually a ton of new appointments are released on Thursday 9am EST but people cancel all the time (that’s how I got mine!) • Make sure you’ve already paid to make getting appointments easier (although I didn’t do this and was still able to snag one) • I think 15 minutes is the sweet spot if you really want to check for cancellations.

UPDATE: Executive order for submitting signed licenses virtually has been extended. :)

MineSafety commented 3 years ago

@nkiraz I have one suggestion if you have not tried it. On the slack side of things, did you invite the bot that you created into the slack channel where you want to receive the messages?? eg typing @yourBotName within the channel. Once invited if you are not getting any errors I think it will just work.

I think this should be added to the instructions for those that aren't too familiar with Slack. Seems to work for me after doing this step.

jimmykudo12 commented 3 years ago

I'm having this same exact issue as @MineSafety and I'm not sure what I'm doing wrong. I added the bot to the channel, copied the Channel ID and Oauth Token. Extracted the cloudformation and uploaded to AWS. Can someone take a look and make sure I'm doing everything correctly? Screenshot 2021-03-27 214006

jimmykudo12 commented 3 years ago

Is the automated checking suppose to be giving messages in slack, even if it finds no results?

I checked cloudwatch logs and I see it getting responses, but it is not posting anything in slack image

Have you figured out how to get automated messages in slack? I'm getting responses on cloudwatch but no luck with Slack messages.

sophiavanvalkenburg commented 3 years ago

Have you figured out how to get automated messages in slack? I'm getting responses on cloudwatch but no luck with Slack messages.

@jimmykudo12 Could there be a problem with the Slack Channel ID? I was having this problem but realized I was accidentally using the whole Slack URL (https://app.slack.com/client/<workspace_id>/<channel_id>) instead of just the <channel_id> part