How to call a setter function in a smart contract which is deployed on ropsten testnet using infura

I want to set a value by calling a smart contract function. The Smart contract is deployed on Ropsten Testnet. I am using Infura instead running a node.

I already read that .send() is not supported by Infura. So which options do I have?

Here is my code:

web3 = new Web3(new Web3.providers.HttpProvider('https://ropsten.infura.io/v3/xxxxxxxxxxxxxxxxxxxxx'));
const abi = PrinterMarketplace;
const contractAddress = '0xa498b78b32755xxxxxxxxxxxxxxf3101a1b92'        
contract = await new web3.eth.Contract(
            abi,
            contractAddress);
contract.methods.setOffer(offerprice, fileHash, client, account).send({ from: account, gas: 3000000 })

I am getting the following error: Error: Returned error: The method eth_sendTransaction does not exist/is not available

Please help.

Hi @Emre_Kocyigit -
You can use eth_sendRawTransaction with a JSON-RPC request via Infura.
Alternatively, since you’re using web3.js, you can also use either their sendTransaction or their sendSignedTransaction