Why are you casting msg as an unsigned integer?
If you look at the library .h file, the prorotype for the publish function is:
boolean publish(const char* topic, const char* payload);
So, the error message is perfectly reasonable- msg has to be a char array.