Wat word het dan? Word het 'Jelmer+Vos'? Begrijpt de MSN server dit dan?
Wat word het dan? Word het 'Jelmer+Vos'? Begrijpt de MSN server dit dan?
!
Volgens mij wel:Originally posted by SVG_1986
Wat word het dan? Word het 'Jelmer+Vos'? Begrijpt de MSN server dit dan?
En als ik vervolgens de NLDMSNP.Username uitvraag dan krijg ik kurig netjes 'Jelmer Vos' terug.Code:> REA 9 msnbot@chello.nl Jelmer+Vos < REA 9 633 msnbot@chello.nl Jelmer+Vos
ehm... Heb jij het niet over de NickName? De username is toch het msnbot@Chello.nl gedeelte..
je stuurt namelijk het commando REA en dat is nickname veranderen met parameters:
MessageID, UserPassport, Nieuwe NickName
!
Hier gaat dat niet goed :s
Borland Delph 7 Enterprise
Borland C++ 6 Professional
Je hebt Passport en Username in het component. Het Passport is je inlog naam (e-mail adres) en Username is je weergave naam voor andere mensen.
Je Passport is sowieso niet te veranderen als je bent verbonden. Je moet de verbinding verbreken en opnieuw inloggen onder een andere passport:
NLDMSNP.Logon('user@host.ext', 'mypassword');
Je Username is gewoon te veranderen als je verbonden bent (alleen maar zelfs), dit kun je doen door NLDMSNP.Username := 'Jelmer Vos';
Ah, dat wist ik niet Ik had verwacht dat de property Username de property was die de gebruikersnaam zou moeten bevatten en niet de nickname
!
Kun je de debug log hier een posten?Originally posted by Maxvw
Hier gaat dat niet goed :s
Dit doe je door in het event OnDebug de DebugText naar bijvoorbeeld een Memo te sturen en deze na het wijzigen van je gebruikersnaam (displayname) hier te posten.
Ik zal binnenkort de property username renamen naar displayname.
Ik zag dat er weer een nieuwe versie van de component uit was, ik had nog een oude, ik denk dat dit het heeft opgelost.
Het werkt nu inelkgeval.
Borland Delph 7 Enterprise
Borland C++ 6 Professional
Perfect, ik heb onderhand een nieuwe versie erop online gezet met een hernoemde Username property, toch bedankt SVG_1986
Denk erom dat je bij het sluiten van je applicatie je MSN uitlogt met de LogOff methode anders krijg je AV's om je oren. Heeft iemand hier misschien een betere oplossing voor (LogOff in de destructor werkt helaas niet, zelfde AV's).
Het is niet zozeer dat je mij moet bedanken Ik denk dat er al meer mensen zijn geweest die bij deze unit hebben gedacht dat bij de Username de gebruikersnaam was..
Vraag ik me toch nog af waarom je nu de spaties veranderd in + tekens? Waarom niet gewoon de spaties laten staan. En als je dan de schermnaam wilt veranderen bij MSN, dat je dan in een variable de schermnaam met Utf-8 naar MSN-voer omzet
!
Voor het coderen van de parameters wordt gebruik gemaakt van de Indy URLDecode functie:
En blijkbaar vind de MSN server dit goeg genoeg. Mooi zo laten.Code:Result := TIdURI.ParamsEncode(Str);
Last edited by Vos; 11-Apr-03 at 22:55.
Maar waar komen die + tekens dan vandaan?
!
Ik gebruik de ParamsEncode welke deze regel bevat:
Kan dan zeker beter PathEncode gebruiken?Code:if ASrc[i] = ' ' then begin {do not localize} Result := Result + '+'; {do not localize}
nou eigenlijk vraag ik me af waarom jij spaties uit de schermnaam veranderd in + tekens?? Als ik mijn schermnaam dan bijvoorbeeld "Stijn van Grinsven" wil maken, dan word dat dus "Stijn+van+Grinsven", en dat snap ik niet..
!
De MSN server pikt geen spaties in parameters omdat spaties gebruikt worden als scheidings teken. Kijk maar:
Dit is met codering:
Gaat dus goed, maar nu zonder:Code:> REA 9 msnbot@chello.nl Jelmer+Vos < REA 9 638 msnbot@chello.nl Jelmer+Vos
En dat vind de MSN server geen goed plan, dus verbinding verbroken. Er is nu immers een parameter teveel opgegeven.Code:> REA 10 msnbot@chello.nl Jelmer Vos *** Disconnected
Zie ook:
Hier staat het %20 moet zijn, maar + werkt dus blijkbaar ook.All screen names on MSN are URL quoted so that they fit in one word and can be easily parsed. URL quoting is where spaces are replaced with %20 along with other special characters.
There are currently 1 users browsing this thread. (0 members and 1 guests)
Bookmarks