Skip to content
This repository has been archived by the owner on Jun 28, 2024. It is now read-only.

Does google have new API urls #9

Closed
dennis1804 opened this issue Oct 16, 2020 · 18 comments
Closed

Does google have new API urls #9

dennis1804 opened this issue Oct 16, 2020 · 18 comments
Assignees
Labels
bug Something isn't working enhancement New feature or request
Milestone

Comments

@dennis1804
Copy link

Hi all, yesterday I had some issues with Google's endpoint (/fcm/send) when I looked at the docs https://firebase.google.com/docs/cloud-messaging/send-message#rest you can see they changed the urls.
The old endpoint seems to work ( apart from the issue I had yesterday: 502 bad gateway)

@williamdes
Copy link
Member

Hi @dennis1804
It seems like some new endpoints have been added and that things changed, maybe some migration is to do
Adding it to the next release even if I am not sure to have much time soon to fix that.
Contributions are very welcome!

@williamdes williamdes added this to the 1.6.0 milestone Oct 16, 2020
@williamdes williamdes added bug Something isn't working enhancement New feature or request labels Oct 16, 2020
@dennis1804
Copy link
Author

Hi, thanks for the reply I'll take a look at it this weekend

@williamdes
Copy link
Member

Hi @dennis1804
Did you have a chance to have a look to the codebase ?

@williamdes williamdes modified the milestones: 1.6.0, 1.7.0 Nov 24, 2020
@williamdes williamdes modified the milestones: 1.6.1, 1.7.0 Feb 18, 2021
@williamdes
Copy link
Member

So from what I researched for #3 there is new routes to implement

@mazimez
Copy link

mazimez commented Jul 26, 2022

@williamdes hello, I see that you are already working on this issue, currently I am using this package for some of my projects I noticed that it's not sending notifications to some users while it does send it to others. I assume that FCM legacy APIs will stop working very soon. So, have you started implementing this new APIs?

I also did some research and find this way of migrating the APIs from legacy to V1:
https://firebase.google.com/docs/cloud-messaging/migrate-v1

I may try to migrate it by myself and if it's working then I may add pull request on your repo.

@williamdes
Copy link
Member

@williamdes hello, I see that you are already working on this issue, currently I am using this package for some of my projects I noticed that it's not sending notifications to some users while it does send it to others. I assume that FCM legacy APIs will stop working very soon. So, have you started implementing this new APIs?

I also did some research and find this way of migrating the APIs from legacy to V1: https://firebase.google.com/docs/cloud-messaging/migrate-v1

I may try to migrate it by myself and if it's working then I may add pull request on your repo.

Hi @mazimez

I assume that FCM legacy APIs will stop working very soon.

Probably, did you see some deadline somewhere ?

I welcome contributions on this subject, I did not start coding for this subject. Only some documentation reading :)

@mazimez
Copy link

mazimez commented Jul 26, 2022

@williamdes I didn't see any Deadline (till now) but yes, in Firebase console, getting the "FCM_SERVER_KEY" for new Accounts does require some extra steps, so I think Google will first update the Firebase console according to new APIs, and then they may announce Deadline.
So I will also try to implement this new APIs (or at least help you with it)

@williamdes
Copy link
Member

So I will also try to implement this new APIs (or at least help you with it)

Thank you so much ! 💪🏻

@williamdes williamdes modified the milestones: 1.8.0, 1.9.0 Jan 16, 2023
@williamdes
Copy link
Member

Hi Team,

We’re writing to let you know that starting June 20, 2024 the legacy Firebase Cloud Messaging (FCM) APIs will be discontinued.

What do you need to know?

On June 20, 2024, we’re reducing the number of Firebase Cloud Messaging (FCM) legacy register APIs and legacy send APIs that provide similar functionality. This step will allow us to provide you with a more consistent experience and align with Google security standards to improve security, reliability and performance.

Because of these API decommissions, some already-deprecated SDKs and features will stop working after June 20, 2024.

Please consult the tables below to find which Firebase Cloud Messaging (FCM) APIs and corresponding services/SDKs/features will be discontinued and replaced with new alternatives.

Discontinued Send API Decommissioned service New alternative
Legacy HTTP Protocol Sending messages via the Legacy HTTP API. Send messages via the HTTP v1 API.
XMPP Protocol Sending upstream and downstream messages via the XMPP API. Send downstream messages via the HTTP v1 API. Send upstream messages via HTTP/gRPC directly from the App to your server.
Batch send API Including multiple send requests in a single HTTP request to FCM known as Batch Send. Send messages via the HTTP v1 API, which has been optimized for fanout performance

Your Firebase project(s) that use Firebase Cloud Messaging APIs are listed below:

  • xxxxx (xxxxxxx)
    • Your recent usage of impacted APIs/features: Server Keys
    • Your recent usage of impacted APIs/features: Legacy HTTP protocol
We’re here to help
Thanks,
Todd on behalf of the Firebase team
Hi Team,

We’re writing to let you know that starting June 20, 2024 the legacy Firebase Cloud Messaging (FCM) APIs will be discontinued.
What do you need to know?

On June 20, 2024, we’re reducing the number of Firebase Cloud Messaging (FCM) legacy register APIs and legacy send APIs that provide similar functionality. This step will allow us to provide you with a more consistent experience and align with Google security standards to improve security, reliability and performance.

Because of these API decommissions, some already-deprecated SDKs and features will stop working after June 20, 2024.

Please consult the tables below to find which Firebase Cloud Messaging (FCM) APIs and corresponding services/SDKs/features will be discontinued and replaced with new alternatives.

Discontinued Send API

Decommissioned service

New alternative

Legacy HTTP Protocol

Sending messages via the Legacy HTTP API.

Send messages via the HTTP v1 API.

XMPP Protocol

Sending upstream and downstream messages via the XMPP API.

Send downstream messages via the HTTP v1 API.

Send upstream messages via HTTP/gRPC directly from the App to your server.

Batch send API

Including multiple send requests in a single HTTP request to FCM known as Batch Send.

Send messages via the HTTP v1 API, which has been optimized for fanout performance

Discontinued Register API

Decommissioned SDK

New alternative

GCM register API

Google Cloud Messaging(GCM) SDKs (deprecated in 2018).

Latest FCM Android SDK.

Legacy Web register API

FCM JS SDK version<7.0.0 (deprecated in 2019)

Latest FCM JS SDK.

Instance ID Server API for Web

No SDK related to this API.

Latest FCM JS SDK.

Discontinued Feature

Decommissioned service

New alternative

Server keys

Authenticating requests with server keys.

Authenticate requests with access tokens generated from authorized service accounts
iOS Direct Channel

Sending messages via FCM’s direct channel to iOS devices while they are running in the foreground.

All iOS messages will be sent via APNS channel.

What do you need to do?

Take the following actions before June 20, 2024, to ensure that you have access to the latest supported features and to reduce the risk of future decommissions affecting your usage:

Follow the instructions described in Firebase FAQ to migrate your individual APIs.
Update to the latest versions of Firebase SDKs.

Platform

Recommended FCM SDK version

Android

= 23.1.2

iOS

= 10.10.0

Web (Javascript)

= 9.22.1

Your Firebase project(s) that use Firebase Cloud Messaging APIs are listed below:

@Stevemoretz
Copy link

Hi Team,
We’re writing to let you know that starting June 20, 2024 the legacy Firebase Cloud Messaging (FCM) APIs will be discontinued.

What do you need to know?
On June 20, 2024, we’re reducing the number of Firebase Cloud Messaging (FCM) legacy register APIs and legacy send APIs that provide similar functionality. This step will allow us to provide you with a more consistent experience and align with Google security standards to improve security, reliability and performance.

Because of these API decommissions, some already-deprecated SDKs and features will stop working after June 20, 2024.

Please consult the tables below to find which Firebase Cloud Messaging (FCM) APIs and corresponding services/SDKs/features will be discontinued and replaced with new alternatives.

Discontinued Send API Decommissioned service New alternative
Legacy HTTP Protocol Sending messages via the Legacy HTTP API. Send messages via the HTTP v1 API.
XMPP Protocol Sending upstream and downstream messages via the XMPP API. Send downstream messages via the HTTP v1 API. Send upstream messages via HTTP/gRPC directly from the App to your server.
Batch send API Including multiple send requests in a single HTTP request to FCM known as Batch Send. Send messages via the HTTP v1 API, which has been optimized for fanout performance
Your Firebase project(s) that use Firebase Cloud Messaging APIs are listed below:

  • xxxxx (xxxxxxx)

            * _Your recent usage of impacted APIs/features: Server Keys_
            * _Your recent usage of impacted APIs/features:  Legacy HTTP protocol_
    

We’re here to help
Thanks,
Todd on behalf of the Firebase team
Hi Team,
We’re writing to let you know that starting June 20, 2024 the legacy Firebase Cloud Messaging (FCM) APIs will be discontinued. What do you need to know?

On June 20, 2024, we’re reducing the number of Firebase Cloud Messaging (FCM) legacy register APIs and legacy send APIs that provide similar functionality. This step will allow us to provide you with a more consistent experience and align with Google security standards to improve security, reliability and performance.

Because of these API decommissions, some already-deprecated SDKs and features will stop working after June 20, 2024.

Please consult the tables below to find which Firebase Cloud Messaging (FCM) APIs and corresponding services/SDKs/features will be discontinued and replaced with new alternatives.

Discontinued Send API

Decommissioned service

New alternative

Legacy HTTP Protocol

Sending messages via the Legacy HTTP API.

Send messages via the HTTP v1 API.

XMPP Protocol

Sending upstream and downstream messages via the XMPP API.

Send downstream messages via the HTTP v1 API.

Send upstream messages via HTTP/gRPC directly from the App to your server.

Batch send API

Including multiple send requests in a single HTTP request to FCM known as Batch Send.

Send messages via the HTTP v1 API, which has been optimized for fanout performance

Discontinued Register API

Decommissioned SDK

New alternative

GCM register API

Google Cloud Messaging(GCM) SDKs (deprecated in 2018).

Latest FCM Android SDK.

Legacy Web register API

FCM JS SDK version<7.0.0 (deprecated in 2019)

Latest FCM JS SDK.

Instance ID Server API for Web

No SDK related to this API.

Latest FCM JS SDK.

Discontinued Feature

Decommissioned service

New alternative

Server keys

Authenticating requests with server keys.

Authenticate requests with access tokens generated from authorized service accounts iOS Direct Channel

Sending messages via FCM’s direct channel to iOS devices while they are running in the foreground.

All iOS messages will be sent via APNS channel.

What do you need to do?

Take the following actions before June 20, 2024, to ensure that you have access to the latest supported features and to reduce the risk of future decommissions affecting your usage:

Follow the instructions described in Firebase FAQ to migrate your individual APIs.
Update to the latest versions of Firebase SDKs.

Platform

Recommended FCM SDK version

Android

= 23.1.2

iOS

= 10.10.0

Web (Javascript)

= 9.22.1

Your Firebase project(s) that use Firebase Cloud Messaging APIs are listed below:

Years later and I'm here again, I wanted to use this amazing package for my new project but what you just posted worries me, are you planning to add support before June 20, 2024, I just wanna know if it's a good idea to use the package at its current stage? I really wish I could contribute as I've done before a few times but I'm just not in a good place and don't have any extra time.

@Stevemoretz
Copy link

Also it seems to be disabled on new projects:

Screen Shot 1402-07-15 at 19 24 27

@williamdes
Copy link
Member

Years later and I'm here again, I wanted to use this amazing package for my new project but what you just posted worries me, are you planning to add support before June 20, 2024, I just wanna know if it's a good idea to use the package at its current stage? I really wish I could contribute as I've done before a few times but I'm just not in a good place and don't have any extra time.

Thank you for refreshing this topic. I intend to try to find time to fix this as this will also hit the production of my client.
One idea that did enter my brain quite some times was to copy paste some already existing code of another lib.
Or act as a code middleware/interface to another library that we would add that already implements all the stuff needed.

Nobody did fund any of my work at @code-lts or seems to love this library. But since I took the personal commitment of maintaining libs in @code-lts action will be taken months before it's too late. If users dislike the solution that will be up to them :)

The people that will comment on this topic will act as votes for the future of this forked project.
Thank you in advance !

Let's continue pushing notifications ;p

Also it seems to be disabled on new projects:

Oh..

@Stevemoretz
Copy link

Years later and I'm here again, I wanted to use this amazing package for my new project but what you just posted worries me, are you planning to add support before June 20, 2024, I just wanna know if it's a good idea to use the package at its current stage? I really wish I could contribute as I've done before a few times but I'm just not in a good place and don't have any extra time.

Thank you for refreshing this topic. I intend to try to find time to fix this as this will also hit the production of my client. One idea that did enter my brain quite some times was to copy paste some already existing code of another lib. Or act as a code middleware/interface to another library that we would add that already implements all the stuff needed.

Nobody did fund any of my work at @code-lts or seems to love this library. But since I took the personal commitment of maintaining libs in @code-lts action will be taken months before it's too late. If users dislike the solution that will be up to them :)

The people that will comment on this topic will act as votes for the future of this forked project. Thank you in advance !

Let's continue pushing notifications ;p

Also it seems to be disabled on new projects:

Oh..

That sounds great, I always did and do appreciate your work and specially this repo. The thing is that this repo was and still is seriously underrated, and the main reason for that is it's really hard to find if there was a reference in the repo that this was made from it would catch on much sooner and better, and there are lots of other places that this could be introduced but sadly isn't, I personally found it by remembering the name of code-lts but I remember using a tool to find the best fork of the main repo every time I wanted to find this repo, and if you have the same problem with your other repos that's the only reason :)

This library is the only usable solution that I could find:
https://github.com/laravel-notification-channels/fcm

Which mentions it's using this library under the hood:
https://github.com/kreait/laravel-firebase

The library itself isn't as well written and well documented as your version of course and has a lot of problems such as :
laravel-notification-channels/fcm#167

But the one it uses under the hood may be helpful for your future implementation :) wish I had more time to help you out with it.

@williamdes
Copy link
Member

Hi everyone here !

I am thinking about considering removing all the code of this library to only keep the main classes to avoid as much BC breaks.
Most of the code would call https://github.com/kreait/firebase-php

That said this very famous library lacks funding: https://github.com/kreait/firebase-php/releases/tag/7.5.2
/cc @jeromegamez

If I use it, I will do my best to let the users know they should fund it.

The important question reading #22
Is everyone ready for a restriction PHP >= 8.1 ?
See: https://github.com/kreait/firebase-php#supported-versions

For now all this is hypothetical, feedback is welcome.

Other option: stop maintenance of this library in 06/2024 when google drops the API.

Other option: copy some code from kreait/firebase-php and make it compatible at least PHP 7.4 (see #22 )

@Stevemoretz

But the one it uses under the hood may be helpful for your future implementation :) wish I had more time to help you out with it.

Thank you for the reference !

@jeromegamez
Copy link

jeromegamez commented Oct 28, 2023

I updated the call for funding to be less "threatening"😅, but the SDK is stable, and I will keep it working, just my motivation to invest large amounts of time is reduced. I appreciate you for mentioning it, thank you! ❤️

That being said, the next major version (8.0) that I will release shortly after the release of PHP 8.3 will only support PHP 8.2 and 8.3, according to the supported versions matrix in the README of the SDK. The current version (7.x) will receive security support as long as PHP 8.1 receives security support, so, until release 9.0 of the SDK.

But as I said, the SDK is stable and should work with the 7.x version as long as Firebase doesn't drop other APIs.

I'm not saying this to push you to continue using the SDK, but if you decide to copy the relevant code, you would need to adapt/test it yourself. I know you know this already, I just wanted to mention it for the sake of completeness 😅.

@williamdes williamdes pinned this issue Nov 8, 2023
@williamdes
Copy link
Member

williamdes commented Dec 24, 2023

Thank you @jeromegamez !

I implemented your SDK with success !

@williamdes
Copy link
Member

Hello dear users,

Nobody did fund my open-source work on this repository. That being said, I will shut down this repository.
The @code-lts organization was created in order to ensure other developers could step up and take my place when it would be needed. But it seems like nobody wants to do it.

If one company here agrees to fund the migration (~2k€) to another sdk under the hood or to implement the new routes, then I will gladly do it on my free time.
I am really disgusted about the tech companies consuming open-source components to make millions and not giving a * about the maintainers or their funding.

Until further updates, I will shut down this repository and go spend some good time IRL.

I was really happy all those years to maintain open-source components like this one, but life is slowly changing.

Take care about your living relatives, they are probably awaiting your phone call.

@williamdes williamdes closed this as not planned Won't fix, can't repro, duplicate, stale Jun 11, 2024
@williamdes williamdes self-assigned this Jun 11, 2024
@williamdes
Copy link
Member

Archiving this repo, contact me by email if needed.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Something isn't working enhancement New feature or request
Development

No branches or pull requests

5 participants