Closed rodrimarchese closed 2 months ago
Muy bien, lo reviso y merged, tengo entendió que número mexicanos puede pasar algo similar sería ideal si creamos un objeto {XX:YY} así como tener un índice de número que necesiten un parseo
Perfecto! buena idea. Lo hago y subo los cambios asi facilitamos posibles nuevos fixes. (pd: ignore el force-push, me confundi y pushie otro fix a la misma rama y tuve que rollbackear)
@leifermendez Hare un mapeo para poder agregar codigos de prefijos de varios paises. Pero tengo una duda de la cual desconozco.
Seran todos de 3 digitos? Estaba pensando en hacer un mapa, sin cantidad estricta de numeros de prefijo, y que compruebe si el prefijo existe en el mapa, sea de longitud que sea. quizas es un poco menos eficiente, pero mas escalable. Que opinas?
lo mas eficiente que se me ocurrio seria algo asi:
const prefixMap = {
'549': '54',
'1234': '123',
'12': '1'
};
function findLongestPrefix(phoneNumber) {
for (let i = phoneNumber.length; i > 0; i--) {
const prefix = phoneNumber.substring(0, i);
if (prefix in prefixMap) {
return prefixMap[prefix] + phoneNumber.substring(i);
}
}
return phoneNumber; // Retorna el número original si no se encuentra ningún prefijo
}
@leifermendez Hare un mapeo para poder agregar codigos de prefijos de varios paises. Pero tengo una duda de la cual desconozco.
Seran todos de 3 digitos? Estaba pensando en hacer un mapa, sin cantidad estricta de numeros de prefijo, y que compruebe si el prefijo existe en el mapa, sea de longitud que sea. quizas es un poco menos eficiente, pero mas escalable. Que opinas?
lo mas eficiente que se me ocurrio seria algo asi:
const prefixMap = { '549': '54', '1234': '123', '12': '1' }; function findLongestPrefix(phoneNumber) { for (let i = phoneNumber.length; i > 0; i--) { const prefix = phoneNumber.substring(0, i); if (prefix in prefixMap) { return prefixMap[prefix] + phoneNumber.substring(i); } } return phoneNumber; // Retorna el número original si no se encuentra ningún prefijo }
Estuve probando que te parece
const prefixMap = {
'549': '54',
'1234': '123',
'12': '1'
};
function fixMetaNumber(phoneNumber){
for (const [prev, current] of Object.entries(prefixMap)) {
if(phoneNumber.startsWith(prev)) {
return phoneNumber.replace(prev, current)
}
}
}
console.log(fixMetaNumber('549888888888'))
@rodrimarchese mira justo dejaron un issue con los numero mexicanos #1004
@leifermendez Implementé la forma que sugeriste. Probé y es mucho mas eficiente. Tambien agregue prefix de MEX según el issue que marcaste.
Gracias!
…oApi para números de teléfono de Argentina con META (en modo de prueba)
Que tipo de Pull Request es?
Descripción
Este error se origina al usar el modo de prueba de META, luego de haber configurado lo necesario y tenerlo conectado. Al recibir cualquier mensaje, la librería intenta mandarle a meta el mensaje, y retorna error. (la causa es que no coincide el numero que le habla, con los números habilitados para hablar que se configuran en Meta)
Al usar META, y agregar números de prueba, facebook no considera el código de area +549, sino que solo +54. Pero, al usar el método para enviar mensajes a la api desde la librería, el numero llega con el 9. Así, es que nunca coinciden los números autorizados de test de META.
El cambio hace que ahora verifica si el numero comienza con el prefijo de ARG (549), y le saca el 9 para solucionar el problema.
Soluciona al error: