我有一个与如何将FCM令牌ID发送到PHP服务器完全相同的问题?但我没有足够的声誉在那里发表评论。我花了两天的时间在这上面,我快疯了。我尝试了很多解决方案,但都没有得到结果。对于我的初级水平(或英语水平(来说,我发现的所有东西都太复杂了,或者已经被弃用了。
我想用最简单的方法将POST Token和Device_ID(我知道如何将两者都获得(发送到我的服务器。不管是JSON、GET还是POST方法,还是其他任何方法。只是一个简单的方法。我不想要任何UI或其他类似的东西。一种在生成FCM令牌时自动发送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);
}
}
我只需要发送RegistrationToServer((
提前谢谢。
编辑我终于可以使用它了: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());
}
});
尝试使用Reform向PHP服务器请求。
interface YourService {
@POST("your endpoint")
fun registerFcmToken(@Body body: RegistrationBody): Call<Response>
}
...
data class RegistrationBody(val token: String, val deviceId: String)