如何将 FCM 令牌发送到我的 php 服务器
Posted
技术标签:
【中文标题】如何将 FCM 令牌发送到我的 php 服务器【英文标题】:How can I do to send FCM token to my php server 【发布时间】:2022-01-21 19:31:14 【问题描述】:我的问题与How to send FCM Token ID to php server? 完全相同,但我没有足够的声誉在那里发表评论。 我花了两天时间,我变得疯狂。 我尝试了很多解决方案,但从未得到结果。 我发现的所有内容对于我的初学者水平(或我的英语水平)来说都太复杂了,或者被弃用了。
我想以最简单的方式将 POST Token 和 Device_ID(我知道如何获取两者)发送到我的服务器。没关系它是 JSON、GET 或 POST 方法,还是其他任何方法。 只是一个简单的方法来做到这一点。 我不想要任何 UI 或其他类似的东西。一种在生成时自动发送 FCM 令牌的方式。
public class MyFirebaseMessagingService extends FirebaseMessagingService
private static final String TAG = "MyFirebaseMsgService";
@Override
public void onNewToken(String token)
String id = Settings.Secure.getString(getContentResolver(), Settings.Secure.android_ID);
sendRegistrationToServer(token, id);
我只需要 sendRegistrationToServer()
非常感谢。
编辑 我终于让它工作了: DeviceService.java
public interface DeviceService
@FormUrlEncoded
@POST("fcm_token_register.php")
Call<String> insertToken(@Field("token") String token, @Field("id") String id);
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://*myserver*/")
.addConverterFactory(GsonConverterFactory.create())
.build();
调用它:
DeviceService service = DeviceService.retrofit.create(DeviceService.class);
Call<String> call = service.insertToken(token,id);
call.enqueue(new Callback<String>()
@Override
public void onResponse(Call<String> call, Response<String> response)
Log.d(TAG, "OK : "+response.toString());
@Override
public void onFailure(Call<String> call, Throwable t)
Log.d(TAG, "Error : "+t.toString());
);
【问题讨论】:
【参考方案1】:尝试使用Retrofit向PHP服务器请求。
interface YourService
@POST("your endpoint")
fun registerFcmToken(@Body body: RegistrationBody): Call<Response>
...
data class RegistrationBody(val token: String, val deviceId: String)
【讨论】:
我已经尝试过改造。我知道这可能是解决方案,但我做不到,而且你的例子对我来说似乎不够详细。对不起。 究竟有什么难度?您需要一种如何通过改造提出请求的方法吗? 是的。 (谷歌翻译因为我的英语)我发现了很多非常麻烦的解决方案,与我的需求相比,这些解决方案在我看来过于庞大,此外,我无法在我需要的框架内实施它们。我不知道我应该创建什么作为一个类,一个接口,以及如何调用它们。以上是关于如何将 FCM 令牌发送到我的 php 服务器的主要内容,如果未能解决你的问题,请参考以下文章