마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

fcm + node.js 연동 관련 질문입니다.(2) [closed]

0 추천
interface NotificationAPI {

    @Headers("Authorization: key=$SERVER_KEY", "Content-Type:$CONTENT_TYPE") //Server key -> 엑세스 토큰`
    @POST("http://192.168.0.68:3000/sendNotification")
    suspend fun postNotification(
        @Body notification: PushNotification
    ): Result<ResponseBody>
}

 

class RetrofitInstance {
    companion object {
        private val retrofit by lazy {
            // Create a new HttpLoggingInterceptor.
            val logging = HttpLoggingInterceptor().apply {
                level = HttpLoggingInterceptor.Level.BODY
            }

            // Add the interceptor to OkHttpClient.
            val client = OkHttpClient.Builder()
                .addInterceptor(logging)
                .build()

            Retrofit.Builder()
                .baseUrl(BASE_URL)
                .addConverterFactory(GsonConverterFactory.create())
                .client(client)  // Add the custom OkHttpClient.
                .build()
        }

        val api by lazy {
            retrofit.create(NotificationAPI::class.java)
        }
    }
}

 

data class PushNotification(
    val data:NotificationData,
    val to : String
)

 

data class NotificationData(
    val title : String,
    val nickname : String,
    val message: String
)

 

class Constants {
    companion object {
        const val BASE_URL ="https://fcm.googleapis.com/v1/projects/animal-1ccca/messages:send"
        const val SERVER_KEY="Bearer ya29.a0AbVbY6PkbZnMpQxSJk7faQbX2xlj5qu6N6qFzEm-9WFHlntC2HsUIxHZZAgPHj0-ykG-I0qC-A44liOwkeKUU0VrCXq7mGSBJ28IozpNp53PIjhATJPMajS8BCxfjhez0aGaxOigxZirMko7qfkIH7gWehFi5MRSaCgYKAbsSARISFQFWKvPlJoLvCSfEd1HoIeU9sjX-vQ0167"/*"MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCy3I59SnrCETzw\\n2a7mFHhIs7AyGmuUnXzih2sHLhwyrXZSFIGBhWd8Es0YYl70+Znbm47UIKV0ULmt\\nbH84+HBoLIvFTbmGiPv7D8MIhGg43dChEnlNjW8TN4HSnsWdjR93J4ynnX+n/wRy\\nw5d5v+dZ7QiIhTrgrH/mmxSS6V6d9ZnWsvsZhNrpLR0YxGtKM4lq4a64hm2oWS/l\\nIoLjivfnoSsqIDM8mSqGa4M/qD5DzNHFzr4e6HNs1oxCP6ZLFnm8Sy5UxUBj8QjQ\\nohc5rslcMaGIeQcehRUt2A4aASb2Zih8fvOEzgA9XZ0rZEio+mlUS8dSmAzsC9p3\\njWUvOtzHAgMBAAECggEAAvv+HqYO/Uz3VNd0/R7LUP86ieN59w1Xp5n11bVVwBy3\\n1C/GZ2hX7TCNHoKJrhG6GPlz/SMcT6AHMRcV2lf+3CYeIOkmltGTTsGZEfvPl19Q\\nG1fpETuyZkIvVtnSV0ojA8RzqtpMZnuxUc7kqKHklNIJKen7LQOD0M+2nKrrKryG\\nqJ7HT7ppqWdZQ+C2MTV/sa2CWgGeU8D85bnc5B9nPhXtfD8i2jy2x9C2bdNNRQtX\\n4E6ZYRizUBOsXVJEVn48rOdU9KavwWK3eTd769gjcLudBsdtRSSgMZvvNdVvFY4a\\n8HR7AYPP2c/a4s0TZM51PrElgP/0aZ9/jh+AiTd/YQKBgQDvSGGwB2Q2AYjTimKV\\nHBZTMkCOeAqIYtCyjzgwWOwdCJkcEPFLTJUYv8G9kWJK6dPIe4E7uWJ+0H1Yk6Nj\\nvQZ4nU1E1en/EiuSmarn+83g81ohPwIsRB+AP6XdkzCnvRtgfbeKYjLiL7vbLa6R\\n4ElXCXogKwYkx90Y/11vWZZnJwKBgQC/W4e9bqpxrXZ6qpkSA5QLsFRUsGVXyBfY\\n0qKoOrhJm69QfdKGsboWGagxetT4TcXI3+e+ol+VJU5yTtQO32YAJtU1s9lndmqK\\n8vdi5z5eUHtRX3tKn+S99j4r5hBPs7AJEFskxqShXD6uwedMwmfIZS6MjHs39HHn\\nXfQbl5hhYQKBgHxgAi7uWJ9dwtI6Hy3kUJJkD3w+VzM3McVufkVbIzegLX2SLOn3\\n35PisICpng7UZbnSwITbwp+qHU06SHZiXYe6M9yw2BU2S6HC8Dvu/b+Mnm+jgayi\\nqEEQVFXM2UCHIkDQd+OdUVeSejHeF9xJWbW8/lbUJjheDsWcjuN/DJeHAoGATNIs\\nDkqNNpHSzLAMP4UcPA0P7efa54C2wh7dmffo3/QWT5QTnmtfL1whf6u2L/DZBCmP\\nWaLKCJAvjAhFbasVwd3VHngTQUvyvdGIqzX2fdqFh0dzsaO7Kt/eWbVEuxqCA0GD\\ntaHhmb30lCfX+aLaE0M7isUi+nWx/JZlV2ZmkEECgYAvOMNPuFcZG4lNIdPvlsPt\\nDpX6Yw7eCSfBDwDwqg/eJ2P9kJ1PFgaILFL+4LjiresVMgCSN49uTj0WfFzF9foC\\nLfLmAmur/goFrZwdnWhfcQKC/9jUPVvx36IsdCNe9Bak22VZ+W7+qgIZd1dTfbLQ\\nFSOajmOX1y0/UoyEk9YD1A==" +
                "k+J1E0DFYOyaN5DUY7Db3g=="*/
        const val CONTENT_TYPE ="application/json"
    }
}

 

질문을 종료한 이유: 코드가 너무 길어서 수정
개린쓰 (680 포인트) 님이 2023년 6월 30일 질문
개린쓰님이 2023년 6월 30일 closed
...