Repository: microsoft/botbuilder-python

Issue:
CloudAdapter.continue_conversation() is missing `bot_app_id` parameter
## Version
4.14.6

## Describe the bug
Posting a message in a group chat throws an exception


## To Reproduce
```python
adapter = CloudAdapter(ConfigurationBotFrameworkAuthentication(config))

conversation_reference = ConversationReference(
    service_url=config.BASE_URL,
    channel_id="msteams",
    conversation=ConversationAccount(
        id=${CHAT_ID},
        is_group = True,
    ),
)
await adapter.continue_conversation(
    reference=conversation_reference,
    callback=lambda turn_context: turn_context.send_activity("Hello!"),
)
```

Exception:
```bash
Traceback (most recent call last):
  *** removed for brevity ****
    result = await adapter.continue_conversation(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/konstantinplis/.pyenv/versions/3.11.0/lib/python3.11/site-packages/botbuilder/core/cloud_adapter_base.py", line 165, in continue_conversation
    return await self.process_proactive(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/konstantinplis/.pyenv/versions/3.11.0/lib/python3.11/site-packages/botbuilder/core/cloud_adapter_base.py", line 262, in process_proactive
    connector_client = await connector_factory.create(
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/konstantinplis/.pyenv/versions/3.11.0/lib/python3.11/site-packages/botframework/connector/auth/_connector_factory_impl.py", line 37, in create
    credentials = await self._credential_factory.create_credentials(
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/konstantinplis/.pyenv/versions/3.11.0/lib/python3.11/site-packages/botframework/connector/auth/password_service_client_credential_factory.py", line 35, in create_credentials
    raise Exception("Invalid app_id")
Exception: Invalid app_id
```

## Expected behavior
Message sent

## Additional context
It seems that `bot_app_id` must be passed to `CloudAdapter.continue_conversation()` and subsequently to `create_claims_identity(bot_app_id)`


Discussion:

Resolving patch:
diff --git a/libraries/botbuilder-core/botbuilder/core/cloud_adapter_base.py b/libraries/botbuilder-core/botbuilder/core/cloud_adapter_base.py
--- a/libraries/botbuilder-core/botbuilder/core/cloud_adapter_base.py
+++ b/libraries/botbuilder-core/botbuilder/core/cloud_adapter_base.py
@@ -150,6 +150,7 @@ async def continue_conversation(  # pylint: disable=arguments-differ
         self,
         reference: ConversationReference,
         callback: Callable,
+        bot_app_id: str,
     ):
         """
         Sends a proactive message to a conversation.
@@ -161,9 +162,12 @@ async def continue_conversation(  # pylint: disable=arguments-differ
         :type reference: :class:`botbuilder.schema.ConversationReference`
         :param callback: The method to call for the resulting bot turn.
         :type callback: :class:`typing.Callable`
+        :param bot_app_id: The application Id of the bot. This is the appId returned by the Azure portal registration,
+        and is generally found in the `MicrosoftAppId` parameter in `config.py`.
+        :type bot_app_id: :class:`typing.str`
         """
         return await self.process_proactive(
-            self.create_claims_identity(),
+            self.create_claims_identity(bot_app_id),
             get_continuation_activity(reference),
             None,
             callback,
@@ -182,7 +186,7 @@ async def continue_conversation_with_claims(
 
     async def create_conversation(  # pylint: disable=arguments-differ
         self,
-        bot_app_id: ConversationReference,
+        bot_app_id: str,
         callback: Callable[[TurnContext], Awaitable] = None,
         conversation_parameters: ConversationParameters = None,
         channel_id: str = None,


Test patch: